Docker-compose
| Docker compose-al, több docker konténert kezelhetünk egyszerre. Erre nézünk egy rövid példát. Tartalmazni fogja a pgsql-t, pgsqladmin-t, nginx-et, php-fpm-et. |
|
|
Telepítés:# apt-get install docker-compose A konfigurációs fájl docker-compose.yml:
version: "3.1"
services:
postgres:
image: postgres
container_name: postgres
volumes:
- "./sourcefiles/postgres:/var/lib/postgresql/data"
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
ports:
- "5432:5432"
networks:
testing_net:
ipv4_address: 172.28.1.2
webserver:
image: nginx:alpine
container_name: ${PROJECT_NAME}-webserver
working_dir: /application
volumes:
- ./application:/application
- ./sourcefiles/nginx:/etc/nginx/conf.d
ports:
- "80:80"
networks:
testing_net:
ipv4_address: 172.28.1.3
php-fpm:
build: sourcefiles/php-fpm
container_name: ${PROJECT_NAME}-php-fpm
working_dir: /application
volumes:
- ./application:/application
- ./sourcefiles/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
networks:
testing_net:
ipv4_address: 172.28.1.4
pgadmin:
image: dpage/pgadmin4
depends_on:
- postgres
ports:
- "5555:80"
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: admin
restart: unless-stopped
networks:
testing_net:
ipv4_address: 172.28.1.5
networks:
testing_net:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
Nginx config sourcefiles/nginx/nginx.conf:
server {
listen 80 default;
client_max_body_size 108M;
access_log /var/log/nginx/application.access.log;
root /application/public;
index index.php;
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
location ~ \.php$ {
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
}
Php docker file sourcefiles/php-fpm/Dockerfile:
FROM phpdockerio/php74-fpm:latest
WORKDIR "/application"
# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive
# Install selected extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install php7.4-pdo php7.4-pgsql php7.4-cli php7.4-gd \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
# Install git
RUN apt-get update \
&& apt-get -y install git \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
Php ini file sourcefiles/php-fpm/php-ini-overrides.ini upload_max_filesize = 100M post_max_size = 108M A sourcefiles/postgres mappába az adatbázis fájlok kerülnek. Parancsok: Indítás: # docker-compose up -d Ha más config fájlunk van megadhatjuk a fájlnevét: # docker-compose up -d -f docker-compose-test.yml Leállítás: # docker-compose down Olvasnivaló: https://github.com/thayronarrais/docker-laravel-postgres-nginx https://stackoverflow.com/questions/25540711/docker-postgres-pgadmin-local-connection https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html https://linuxhint.com/postgresql_docker/ https://hasura.io/blog/building-graphql-api-laravel-postgresql-hasura-remote-joins/ https://medium.com/coderbunker/a-better-way-to-develop-your-graphql-api-using-docker-postgresql-postgraphile-7a1ae034b826 |
| 2021.05.02. |
Figyelem! Az itt olvasható leírások, nem teljesek és nem biztos, hogy pontosak. Nem
frissülnek folyamatosan, ezért nem mindegyik használható az aktuális verziójú rendszerekben. Mindenki saját
felelősségére használja az itt található ötleteket. Az esetleges károkért nem vállalunk felelősséget.