Base Bitrise Docker image
Based on Ubuntu, with pre-installed bitrise CLI.
This docker image is pre-cached on the related bitrise.io Virtual Machines.
If you'd like to add a tool to be pre-installed you can create a
Pull Request, adding your changes to the
Dockerfile of this repository.
Please also add a related test/report to the
which is used to test & list the pre-installed tools.
When a new version of this stack is available on bitrise.io
system_report.sh and post the result into
the bitrise.io GitHub repository,
system_reports folder. The
system_report.sh script can be run with
docker-compose locally too,
docker-compose run --rm app bash system_report.sh.
There are two images built from this repository:
- docker-bitrise-base-alpha - built every day, tagged automatically
- docker-bitrise-base - "pinned", release version
The "Alpha" images are built and tagged every day, automatically. These are tested regularly with various tests, but are not production ready.
Once an "Alpha" is properly tested and declared as production ready, a "pinned" version is created and published. Pinned versions are considered production ready, and the "latest" pinned version is pre-cached on the bitrise.io Linux/Android Virtual Machines.
This means that if you want to build your own Docker image on top of this Docker image,
you should build it on top of
bitriseio/docker-bitrise-base:latest, which is the
latest tested, pinned, "production" version. Pinned versions are created and pre-cached weekly,
usually on Saturday.
If you want to build your own Docker image on top of this image and you want to use it on bitrise.io, you should do that on top of
bitriseio/docker-bitrise-base:latest, and make sure you add this image as a Linked Repository on Docker Hub, or that you rebuild your image on every weekend, once the pinned "latest" version is updated, to benefit from the pre-cached image layers (for quite a significant speed up!). Other versions / tags of the image are not pre-cached, only the most recent "latest" tagged version is pre-cached on bitrise.io!
docker-compose.yml is also included, configured for quick testing.
To build the image with
docker-compose all you have to do is:
Then to run
bitrise --version in the container:
docker-compose run --rm app bitrise --version
To log into an interactive
bash shell inside the container just run:
docker-compose run --rm app /bin/bash - when you want to exit just run
exit inside the container.
For convenience / experimenting the
./_tmp folder (which is in
will be shared to
/bitrise/tmp, to make it easy for you to share files
with the container.
Every time you change your
Dockerfile you'll have to run
docker-compose build again,
so your next
docker-compose run will run in the environment you specify in
Maintainer / Service Developer Notes
Docker volumes / shared folders
If you want to use shared volumes / folders with this Docker image, to let e.g. a build to use
the container, you should mount a volume / shared folder into
/bitrise/, and should include the following dirs
in that shared folder:
For maximum compatibility you should share
/bitrise from the host to
/bitrise in the container.
Also worth to mention that doing this will improve the performance of file moves between these dirs,
if the whole
/bitrise dir is shared as a single shared folder / volume.
Due to how docker handles volumes / shared folders right now, if you move files between shared and non shared dirs
it'll have to do a full file copy,
while if you move files inside a volume / shared dir (
/bitrise in this case)
that will be a simple rename, no file copy required.