Docker utilizando o compose, arquivo de configuração com variáveis de ambiente, criando um container nginx 1.13.3 e um container php 7.1.9-fpm ligados através de um link e criando um container postgres 9.6.5.
-
Exposição de portas
80 e 443
-
Volume (Obs: verificar se na configuração do docker -> drivers compartilhados, as unidades c: e/ou d: estão habilitadas)
Aplicação: htdocs -> /var/www/html
Logs: nginx/logs -> /var/log/nginx
Virtual Host: nginx/sites -> /etc/nginx/conf.d
-
Virtual Host
Criação do vhost modelo http://api.dev (vhost modificável)
-
Exposição de portas
9000
-
Volume (Obs: verificar se na configuração do docker -> drivers compartilhados, as unidades c: e/ou d: estão habilitadas)
Aplicação: htdocs -> /var/www/html
-
Bibliotecas
Habilitação de bibliotecas do php através de arquivo de configuração. Ex: MBSTRING, GD, MCRYPT, PDO_MYSQL, etc.
-
Exposição de portas
5432
-
Volume (Obs: verificar se na configuração do docker -> drivers compartilhados, as unidades c: e/ou d: estão habilitadas)
Aplicação: postgresql/data -> /var/lib/postgresql/data
-
Configuração para conexão
-
POSTGRES_DB = default
-
POSTGRES_USER = default
-
POSTGRES_PASSWORD = secret
-
POSTGRES_PORT = 5432
-
-
Clone o repositório usando o comando:
git clone https://github.com/danielnogueira-dev/Docker-Compose-Nginx-Php-Postgresql
-
Entre na pasta Docker-Compose-Nginx-Php-Postgresql e copie o arquivo env-example para .env.
cp env-example .env
-
Rode seu container:
docker-compose up -d
-
Adicione os domínios no arquivo de hosts do windows.
127.0.0.1 localhost
127.0.0.1 api.dev
-
Abra no navegador
-
Acessar o shell do container:
winpty docker exec -it nginx bash
winpty docker exec -it php-fpm bash
winpty docker exec -it postgresql bash
-
Acessar o banco de dados dentro do container Postgresql
psql default default
-
Comandos básicos para utilizar o banco de dados
\l;
CREATE DATABASE teste;
\connect teste;
\dt;
CREATE TABLE pessoa (id serial primary key, nome varchar(60) not null);
INSERT INTO pessoa(nome) VALUES ('maria');
INSERT INTO pessoa(nome) VALUES ('joao');
INSERT INTO pessoa(nome) VALUES ('julia');
INSERT INTO pessoa(nome) VALUES ('pedro');