Sebuah catatan dalam menyiapkan env di lokal komputer untuk mulai development dengan Symfony 4, PostgreSQL dan Nginx.
╰─➤ mkdir docker
╰─➤ mkdir docker/nginx
╰─➤ touch docker/docker-compose.yaml
╰─➤ touch docker/nginx/Dockerfile
╰─➤ mkdir docker/php-fpm
╰─➤ touch docker/php-fpm/Dockerfile
╰─➤ touch docker/nginx/default.conf
╰─➤ ls docker
docker-compose.yaml nginx php-fpm
╰─➤ ls docker/nginx
default.conf Dockerfile
╰─➤ ls docker/php-fpm
Dockerfile
FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/
RUN apt-get update
RUN apt-get install -y zlib1g-dev libpq-dev git libicu-dev libxml2-dev \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl \
&& docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
&& docker-php-ext-install pdo pdo_pgsql pgsql \
&& docker-php-ext-install zip xml
RUN curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer
# Set timezone
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
RUN "date"
WORKDIR /var/www/symfony
version: '2'
services:
postgres:
image: postgres
ports:
- '5433:5432'
php:
build: php-fpm
ports:
- '9002:9000'
volumes:
- ../:/var/www/symfony:cached
- ./logs/symfony:/var/www/symfony/var/logs:cached
links:
- postgres
nginx:
build: nginx
ports:
- '8080:80'
links:
- php
volumes_from:
- php
volumes:
- ./logs/nginx/:/var/log/nginx:cached
Sumber referensi: https://blog.rafalmuszynski.pl/how-to-configure-docker-for-symfony-4-applications/
1. Siapkan Files dan Folders yang Diperlukan
Saya menyiapkan project pada folder berikut ~/Documents/projects/Obunda/news-portal.╰─➤ mkdir docker
╰─➤ mkdir docker/nginx
╰─➤ touch docker/docker-compose.yaml
╰─➤ touch docker/nginx/Dockerfile
╰─➤ mkdir docker/php-fpm
╰─➤ touch docker/php-fpm/Dockerfile
╰─➤ touch docker/nginx/default.conf
╰─➤ ls docker
docker-compose.yaml nginx php-fpm
╰─➤ ls docker/nginx
default.conf Dockerfile
╰─➤ ls docker/php-fpm
Dockerfile
![]() |
Siapkan folders dan files yang diperlukan. |
![]() |
Folders dan Files yang telah dibuat. |
2. Buat Files Konfiguasi untuk Nginx
2.1. File default.conf Milik Nginx
server {
listen 80;
server_name localhost;
root /var/www/symfony/public;
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /index.php/$1 last;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
error_log /var/log/nginx/symfony_error.log;
access_log /var/log/nginx/symfony_access.log;
}
![]() |
Konfigurasi milik Nginx. |
2.2 File Dockerfile Milik Nginx
FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/
![]() |
Dockerfile milik Nginx. |
2.3 Hasil kedua files diatas
![]() |
Hasil dua files konfigurasi milik Nginx |
3. File Dockerfile Milik PHP-FPM
FROM php:7.2-fpmRUN apt-get update
RUN apt-get install -y zlib1g-dev libpq-dev git libicu-dev libxml2-dev \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl \
&& docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
&& docker-php-ext-install pdo pdo_pgsql pgsql \
&& docker-php-ext-install zip xml
RUN curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer
# Set timezone
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
RUN "date"
WORKDIR /var/www/symfony
![]() |
Dockerfile milik PHP-FPM. |
4. File docker-compose.yaml Untuk Ketiga Image di Atas
version: '2'
services:
postgres:
image: postgres
ports:
- '5433:5432'
php:
build: php-fpm
ports:
- '9002:9000'
volumes:
- ../:/var/www/symfony:cached
- ./logs/symfony:/var/www/symfony/var/logs:cached
links:
- postgres
nginx:
build: nginx
ports:
- '8080:80'
links:
- php
volumes_from:
- php
volumes:
- ./logs/nginx/:/var/log/nginx:cached
![]() |
docker-compose.yaml |
5. Build Files diatas jadi Images
╭─yoesoff@yoesoff-ThinkPad-X220 ~/Documents/projects/Obunda/news-portal/docker
╰─➤ docker-compose build
![]() |
docker-compose build |
6. Jalankan Applikasi
╭─yoesoff@yoesoff-ThinkPad-X220 ~/Documents/projects/Obunda/news-portal/docker
╰─➤ docker-compose up
![]() |
docker-compose up |
Bila ingin docker-compose up berjalan di background tambahkan -d, jadi sbb:
╰─➤ docker-compose up -d
Sumber referensi: https://blog.rafalmuszynski.pl/how-to-configure-docker-for-symfony-4-applications/
Comments
Post a Comment