Skip to main content

Laravel Docker

Tambahkan User ke Grup Docker​

Jalankan perintah berikut untuk menambahkan user kaesa ke grup docker:

sudo usermod -aG docker kaesa
  • -aG: Menambahkan user ke grup tanpa menghapusnya dari grup lain.
  • docker: Nama grup yang ingin Anda tambahkan.
  • kaesa: Nama user yang ingin Anda tambahkan ke grup.

Jangan lupa untuk logout dan login kembali. Setelah menambahkan user kaesa ke grup docker, Anda perlu logout dan login kembali untuk perubahan mengambil efek.

Mengidentifikasi User dan Grup kaesa​

id kaesa

Output-nya akan menunjukkan UID dan GID untuk user kaesa.

Mengubah Pemilik File dan Direktori​

Gunakan perintah chown untuk mengubah pemilik file dan direktori di project Anda menjadi user kaesa:

sudo chown -R kaesa:kaesa /var/www/pondokmbodo

Ini akan mengubah pemilik semua file dan direktori dalam project tersebut menjadi user kaesa.

Memeriksa Perubahan​

Setelah menjalankan perintah chown, Anda dapat memeriksa apakah perubahan sudah diterapkan dengan benar:

ls -l /var/www/pondokmbodo

Output-nya akan menunjukkan bahwa semua file dan directory sekarang dimiliki oleh user kaesa.

Image php:8.3-fpm​

root@19832473a525:/var/www/html# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
random
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

[GAGAL] Percobaan Dockerfile 01​

# Menggunakan image resmi PHP-FPM
FROM php:8.3-fpm

# Menetapkan direktori kerja dalam container
WORKDIR /var/www/html

# Menginstal dependensi yang diperlukan
# mix
RUN apt-get update \
&& apt-get install -y build-essential zlib1g-dev default-mysql-client curl gnupg procps vim git unzip libzip-dev libpq-dev \
&& docker-php-ext-install zip pdo_mysql pdo_pgsql pgsql

# intl
RUN apt-get install -y libicu-dev \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl

# gd
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev && \
docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ && \
docker-php-ext-install gd

# Menginstal Composer secara manual
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Menginstal Node.js dan npm
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs

# Menyalin file aplikasi Laravel ke dalam container
COPY . .

# Menjalankan Composer untuk menginstal dependensi Laravel
RUN composer install --no-dev --optimize-autoloader

# Menjalankan npm untuk menginstal dependensi frontend
RUN npm install && npm run build

# Menetapkan izin untuk direktori Laravel
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
RUN chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache

# Mengekspos port yang digunakan oleh PHP-FPM
EXPOSE 9000

# Menjalankan PHP-FPM
CMD ["php-fpm"]

Build Image Docker​

docker compose build

Menjalankan Docker Compose​

docker compose up
docker compose -p pondokmbodo up -d

Menghentikan Docker Compose​

docker compose down
docker compose -p pondokmbodo down

Eksekusi Terminal Container​

docker exec -it pondokmbodo-app-1 sh

Jika tidak bisa:

docker exec -it pondokmbodo-app-1 bash

Jika error storage permission ketik perintah ini:

chown -R www-data:www-data /var/www/html/storage/*

Jika ingin performa baik:

php artisan optimize:clear
php artisan optimize
php artisan icons:cache
npm run build

Docker Build​

docker build -t lyrihkaesa/pondokmbodo:1.0.0-dev .
docker image ls
docker image rm random-id-image