How it Works?

Docker Compose Files

They are 3 docker compose files for different environments.

Name Environment Description
docker-compose.yml Production Only required images
docker-compose-dev.yml Development All images according to docker sync
docker-compose-test.yml Test Only testing requirement images

Docker Compose Images

Have a look at docker-compose-dev.yml file, here are the docker-compose built images:

Service Description
database MySQL database
application Nginx and Php-Fpm
phpmyadmin PhpMyAdmin
elk Elasticsearch / Logstash / Kibana
selenium_hub Selenium Hub
chrome_node Chrome Node for Selenium

How to use?

In Openjet application you need to specify the docker-compose file must be used. Usage depend on your System, for more information, read Docker Requirements section.

For prevent error and more flexibility, Openjet provide docker commands who check your system and run the good docker-compose file automatically.

# Build images
$ bin/docker-compose-build
# (Start docker sync on MacOS and) Up containers
$ bin/docker-compose-up
# (Stop and clean docker sync on MacOS and) Down containers
$ bin/docker-compose-down

If you want show following running containers:

$ docker-compose -f docker-compose-dev.yml ps

             Name                           Command               State                   Ports
---------------------------------------------------------------------------------------------------------------
openjet-application-container    docker-php-entrypoint /usr ...   Up      443/tcp, 0.0.0.0:80->80/tcp, 9000/tcp
openjet-chrome-node-container    /opt/bin/entry_point.sh          Up
openjet-database-container       docker-entrypoint.sh mysql ...   Up      3306/tcp
openjet-elk-container            /usr/bin/supervisord -n -c ...   Up      0.0.0.0:81->80/tcp
openjet-phpmyadmin-container     /run.sh phpmyadmin               Up      0.0.0.0:8080->80/tcp
openjet-selenium-hub-container   /opt/bin/entry_point.sh          Up      0.0.0.0:4444->4444/tcp

Useful commands

# Copy vendor form application container to host
$ docker cp -L openjet-application-container:/var/www/openjet/vendor vendor

# Bash commands
$ docker exec openjet-application-container bash
$ docker-compose -f docker-compose-dev.yml exec application bash

# Composer Install
$ docker run -p 0.0.0.0:14242:3000 -v ~/.ssh:/vault/.ssh --name dockito-vault -d dockito/vault && \
docker exec openjet-application-container ONVAULT composer install && \
docker cp -L openjet-application-container:/var/www/openjet/vendor vendor

# Delete all containers
$ docker rm $(docker ps -aq)

# Delete all images
$ docker rmi $(docker images -q)