tp-docker-eisti/README.md

67 lines
2.0 KiB
Markdown
Raw Normal View History

# | Introduction to docker (2) |
[TOC]
## II. Linking containers
### 1)
## III. Setting up a development stack
### 1) Choosing images
We will setup a simple web dev stack with :
- nginx (_i.e. nginx:latest_)
- mariadb (_i.e. mariadb:latest_)
- php-fpm (_i.e. php:7-fpm_)
### 2) Volume & network sharing policy
#### 1. Volume sharing
###### a) Configuration files
The **apache** and **php** configuration will be on the host machine (for easy modification) and only mounted on the containers to override the default configuration files. A [virtual](./virtual) folder will hold these configurations with the same path for consistency:
- the nginx configuration file is located at [virtual/etc/nginx/nginx.conf](./virtual/etc/nginx/nginx.conf).
- the php-fpm configuration file is located at [virtual/usr/local/etc/php-fpm.d/www.conf](./virtual/usr/local/etc/php-fpm.d/www.conf).
###### b) Storage files
MariaDB will have its whole data folder (_i.e. `/var/lib/mysql`_) on the host in the _virtual_ folder to have the data remaining throughout containers. This property makes the database consistent and persistent among container creation/deletion.
###### c) Log files
Also logs will be mounted the same way in order for developers to easily check these out when needed (_e.g. `virtual/var/log/apache2/access.log`_). Also, note that even if the container is removed, the logs will remain.
###### d) Development folder
The development folder (_i.e. the actual code to test_) is located in the folder [virtual/vhost](./virtual/vhost). In a real-world use of this configuration, I would clone a git repository into it in order for my docker configuration and my actual code not to mix together ; we could then use _git submodules_ for version stability among the 2 repositories.
#### 2. Network sharing
The whole system will only expose its port `8080` ; we are not using the default HTTP port not to break a possible web server on the host. Containers between them will be connected through the default overlay network which is unreachable from the host.
2018-09-26 11:55:25 +00:00