We at Bitmovin use this Docker image to run our builds with the codeship.com Docker setup.
- basic tools like
curl
,wget
andgit
- PHP5 and composer to build our PHP projects
- envtpl - command line tool to render jinja2 templates
- nodejs - JavaScript server runtime
- npm - npm is the package manager for Node.js
- grunt - JavaScript task runner
- bower - a package manager for the web
- openjdk8 and maven to build Java projects
- ruby and sass gem
- php -
5.5.33
- composer -
1.3.2
- envtpl -
0.5.0
- nodejs -
v4.7.3
- npm -
3.10.10
- grunt -
v1.2.0
- bower -
1.7.9
- java -
1.8.0_111
- maven -
3.0.5
- ruby -
2.0.0p384
- sass -
3.4.23
- sonar-scanner -
2.6.1
- gulp -
3.9.1
- ant -
1.9.3
The image is also based on dind
so you can build docker images and add them to the local codeship docker repository.
Now you can push your built image to a remote repository (step added in codeship-steps.yml
for Docker-Hub):
- name: push_step
service: build
type: push
image_name: myuser/myapp
registry: https://index.docker.io/v1/
encrypted_dockercfg_path: dockercfg.enc
Example codeship-services.yml
:
build:
image: bitmovin/web-builder
volumes:
- ./:/my-php-app
- /tmp/composer-cache:/root/.composer/cache
Example codeship-steps.yml
:
- name: build_step
service: build
command: composer install --no-interaction --no-dev -d /my-php-app
- name: config_step
service: build
command: envtpl < /my-php-app/conf/app.conf.j2 > /my-php-app/conf/app.conf
- reuse composer cache
volumes:
- /tmp/composer-cache:/root/.composer/cache
- reuse maven and activator cache
volumes:
- /tmp/ivy2-cache:/root/.ivy2/cache