Um fluxo de trabalho bastante simplificado com Docker compose para multisite LEMP
- Linux Alpine (php:7.4-fpm-alpine)
- Installed packages :
libpng-dev libzip-dev zlib-dev unzip zip git composer
- Installed php extensions :
gd pdo_mysql mysqli mbstring zip exif pcntl
- Installed packages :
- NGINX (nginx:alpine)
- Mysql (mysql:latest)
- phpMyAdmin (phpmyadmin:latest)
- Clone
$ git clone [email protected]:fernandorjesus/docker-lamp.git docker
- Vá para o diretório e inicie os containers
$ cd docker/_server && docker-compose up -d
- Pronto! Você deve ser capaz de ver se os containers estão sendo executados!
Para verificar se há serviços em execução, execute
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------
applications docker-php-entrypoint php-fpm Up 9000/tcp
database docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
webserver nginx -g daemon off; Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
phpmyadmin /docker-entrypoint.sh apac ... Up 0.0.0.0:8081->80/tcp
Para acessar o container, execute
$ docker exec -it applications /bin/sh
$ docker exec -it database /bin/sh
$ docker exec -it webserver /bin/sh
$ docker exec -it phpmyadmin /bin/sh
É muito simples!
- Adicione seu projeto na pasta do aplicativo Exemplo
- _server
- etc
- nginx
- php
- mysql
- docker-compose.yml
- www
- seuprojeto1 <-- aqui
- index.php
- seuprojeto2 <-- e aqui
- index.php
- Crie um arquivo conf nginx para seus projetos
- _server
- etc
- nginx
- project1.conf <-- aqui
- project2.conf <-- e aqui
- php
- mysql
- docker-compose.yml
- www
exemplo de conteúdo para cada um deles.
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
server_name seuprojeto1.dev;
root /var/www/html/seuprojeto1;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
gzip_static on;
}
}
- Faca o apontamento do seu server name no seu hosts - No linux execute este comando:
sudo nano /etc/hosts
$ 127.0.0.1 seuprojeto1.dev
- Pronto! Tudo que você precisa fazer agora é reiniciar os serviço
$ docker-compose down && docker-compose up -d