Update ssytem
sudo apt update
sudo apt upgrade
instal paket
sudo apt install ca-certificates curl gnupg dpkg lsb-release
mkdir lemp-docker
cd lemp-docker
Buat file docker-compose.yml di dalam direktori tersebut:
version: ‘3.8’
services:
nginx:
image: nginx:latest
container_name: lemp-nginx
ports:
– “80:80”
volumes:
– ./nginx/conf.d:/etc/nginx/conf.d
– ./nginx/html:/usr/share/nginx/html
– ./nginx/log:/var/log/nginx
depends_on:
– php
networks:
– lemp-network
php:
image: php:8.1-fpm
container_name: lemp-php
volumes:
– ./nginx/html:/usr/share/nginx/html
networks:
– lemp-network
mariadb:
image: mariadb:latest
container_name: lemp-mariadb
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
volumes:
– db_data:/var/lib/mysql
networks:
– lemp-network
volumes:
db_data:
networks:
lemp-network:
mkdir -p nginx/conf.d nginx/html nginx/log
Buat file konfigurasi virtual host Nginx di nginx/conf.d/default.conf:
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass lemp-php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Tambahkan file index.php di dalam nginx/html/ untuk menguji:
<?php
phpinfo();
Jalankan Docker Compose untuk memulai semua layanan:
docker-compose up -d
Melihat log container:
docker-compose logs -f
Menghentikan layanan:
docker-compose down
Menghapus container dan volume:
docker-compose down -v
Restart layanan untuk menerapkan perubahan konfigurasi:
docker-compose down
docker-compose up -d