Add essential packages to default image

Issue #12860 closed
Yevhenii Kurtov
created an issue

Hello,

here are the couple of packages that it'll be good to have in the default image:

  • System tools: curl wget unzip
  • Selenium dependencies: xvfb openjdk-7-jre-headless chromium chromedriver git (maybe firefox and firefox driver as well)
  • Database: PostgreSQL latest stable with PostGIS last stable

Maybe also Node.js latest stable

Together with caching it will greatly reduce building time, and taking into account that in one system multiple versions of Node.js and PostgreSQL/PostGIS versions can co-exist there should be no any problems.

Comments (6)

  1. Yevhenii Kurtov reporter

    @Alex Soto I want to stress out the importance of adding essential packaged to default image for it to not be covered with the shadow of documentation request.

    I know how to do that and the problem, that installing node, xfvb, chromium, selenium, posgresql takes around 8 minutes. 8 minutes of execution before tests even started to run. Who would like to be waiting that much time?

    Here is the example of a viable approach with clear advantage for the user:

    https://codeship.com/documentation/continuous-integration/browser-testing/ https://codeship.com/documentation/databases/postgresql/ https://codeship.com/documentation/languages/nodejs/

  2. Alex Soto

    I agree, but it doesn't seem that Bitbucket wants to provide 'default images', they are all docker public images from what I've seen. Seems to me their intent is for users to use public images or their own images.

    Makes sense to me as providing an image that works for everyone is a tall task

  3. Yevhenii Kurtov reporter

    @Alex Soto that's true - they all are public Docker images and actually, being able to use multiple docker images simultaneously is much more desired than having 30 lines of bash commands in steps section! Problem is that there is no known (at least for me) way to automatically combine multiple Docker images into one.

    With that being said, there is a ticket for a relevant feature request (and it's more relevant than documentation request) https://bitbucket.org/site/master/issues/12757/ability-to-run-multiple-docker-containers

    To sum up: this topic is just a proposal how to reduce an execution time - 8 minutes of environmental bootstrapping is just not normal :(

  4. Sten Pittet

    Hi @ Yevhenii Kurtov,

    Our approach today is to rely on the existing public images on the DockerHub as it would be really hard for us to stay up-to-date with the latest changes happening in the different dev communities.

    Regarding the need to use databases and other services we plan on supporting running multiple containers within the same step to allow you to run more complex pipelines.

    With that being said there are a few things that we can improve in our default image.

    Thanks,

    Sten

  5. Log in to comment