Dockerise Laravel dengan Portainer
Dockerise Laravel dengan Portainer
Ditulis oleh: Fatih Athaillah Nugroho
https://radnet-digital.id/
Pendahuluan
Dalam tutorial ini, kita akan menggunakan Portainer untuk mengelola kontainer Docker dan mendockerise aplikasi Laravel. Dengan cara ini, Anda dapat dengan mudah menjalankan aplikasi Laravel di lingkungan yang terisolasi dan terkelola.
Persiapan
- Pastikan Anda memiliki server dengan Docker dan Portainer terinstal.
- Siapkan aplikasi Laravel yang akan didockerise.
- Pastikan Anda memiliki akses ke Portainer UI.
Struktur Direktori Laravel-Project
laravel-project/
├── Dockerfile
├── docker-compose.yml
├── nginx/
│ └── conf.d/
│ └── app.conf
└── (Laravel project files)
Langkah-Langkah
1. Clone Repository Laravel
mkdir laravel-project
cd laravel-project
git clone https://github.com/laravel/laravel.git
2. Buat File docker-compose.yml
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: unless-stopped
working_dir: /var/www/
volumes:
- ./:/var/www
networks:
- laravel_net
nginx:
image: nginx:alpine
container_name: laravel_nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./:/var/www
- ./nginx/conf.d:/etc/nginx/conf.d/
networks:
- laravel_net
db:
image: mysql:5.7
container_name: laravel_db
restart: unless-stopped
environment:
MYSQL_DATABASE: laravel_db
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_PASSWORD: your_password
MYSQL_USER: laravel_user
volumes:
- dbdata:/var/lib/mysql/
networks:
- laravel_net
networks:
laravel_net:
driver: bridge
volumes:
dbdata:
driver: local
3. Buat File Dockerfile
FROM php:8.2-fpm
RUN apt-get update && apt-get install -y build-essential libpng-dev libjpeg62-turbo-dev libfreetype6-dev locales zip jpegoptim optipng pngquant gifsicle vim unzip git curl libzip-dev
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install pdo_mysql zip exif pcntl
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www
WORKDIR /var/www
COPY . /var/www
COPY --chown=www:www . /var/www
USER www
EXPOSE 9000
CMD ["php-fpm"]
4. Konfigurasi Nginx
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app: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;
}
}
5. Sesuaikan File .env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=username_anda
DB_PASSWORD=password_anda
6. Jalankan Docker Compose
sudo docker-compose up -d --build
sudo docker-compose exec app composer install
sudo docker-compose exec app php artisan key:generate
Kesimpulan
Dengan langkah-langkah di atas, Anda berhasil mendockerise aplikasi Laravel menggunakan Docker dan Portainer. Aplikasi Anda kini berjalan di lingkungan container yang efisien dan terisolasi, serta mudah dikelola melalui Portainer.
Comments
Post a Comment