Install lamp di portainer

version: '3.8'

services:
  apache:
    image: php:7.4-apache
    container_name: lamp_apache
    ports:
      - "8666:80"
    volumes:
      - lamp_www:/var/www/html
      - lamp_apache:/etc/apache2
      - lamp_php:/usr/local/etc/php


    depends_on:
      - mysql
    networks:
      - lampnet

  mysql:
    image: mysql:5.7
    container_name: lamp_mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydb
      MYSQL_USER: user
      MYSQL_PASSWORD: userpassword
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - lampnet

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: lamp_phpmyadmin
    depends_on:
      - mysql
    ports:
      - "8667:80"
    restart: always
    environment:
      PMA_HOST: mysql
      PMA_USER: user
      PMA_PASSWORD: userpassword
      UPLOAD_LIMIT: 50M
    networks:
      - lampnet

volumes:
  mysql_data:
  lamp_www:
  lamp_apache:
  lamp_php:

networks:
  lampnet:
    driver: bridge
docker exec -it lamp_apache bash
a2enmod rewrite
# restart apache2
nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    DocumentRoot /var/www/html/public
    <Directory /var/www/html/public>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
# restart apache2
# env laravel arahkan ke ip mysql ,bukan localhost
DB_CONNECTION=mysql
DB_HOST=192.168.64.2
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=user
DB_PASSWORD=userpassword
# install di container php-apache
apt update
apt install libmysqlclient-dev
docker-php-ext-install pdo pdo_mysql
php -m | grep pdo_mysql
# aktifkan exten di php.ini
extension=pdo_mysql.so
# jika container php-apache gagal update ,kasih dns dari host ke docker
# W: Failed to fetch http://deb.debian.org/debian/dists/bullseye/InRelease  Temporary failure resolving 'deb.debian.org'
sudo nano /etc/docker/daemon.json

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}

# restart docker
sudo systemctl restart docker

# Memberikan izin penuh kepada direktori storage dan bootstrap/cache
sudo chmod -R 775 /var/www/html/larport/storage
sudo chmod -R 775 /var/www/html/larport/bootstrap/cache

# Menetapkan pemiliknya sebagai user yang tepat, misalnya www-data untuk Apache
sudo chown -R www-data:www-data /var/www/html/larport/storage
sudo chown -R www-data:www-data /var/www/html/larport/bootstrap/cache
# Pasang composer di docker apache jika butuh
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
# Lengkapi sebelum composer install

# 1. Update package list
apt-get update

# 2. Install library pendukung (dependency) untuk intl dan zip
apt-get install -y libicu-dev libzip-dev

apt-get update && apt-get install -y \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip \
    git \
    curl

# 3. Install dan aktifkan ekstensi PHP
docker-php-ext-install intl zip

docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# lanjut install

composer install

cp .env.example .env
php artisan key:generate
php artisan migrate

Leave a Reply