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)