services: app: build: context: . dockerfile_inline: | FROM php:8.2-apache RUN docker-php-ext-install mysqli pdo pdo_mysql \ && a2enmod rewrite \ && printf '%s\n' \ '' \ ' Options FollowSymLinks' \ ' AllowOverride All' \ ' Require all granted' \ '' \ 'DirectoryIndex index.php index.html' \ > /etc/apache2/conf-available/webgis.conf \ && a2enconf webgis COPY . /var/www/html/ RUN mkdir -p /var/www/html/02/uploads \ /var/www/html/05/assets/uploads \ /var/www/html/05/uploads/bukti \ && chmod -R a+rX /var/www/html \ && chown -R www-data:www-data /var/www/html/02/uploads \ /var/www/html/05/assets/uploads \ /var/www/html/05/uploads expose: - "80" environment: DB_HOST: db DB_USER: webgis DB_PASSWORD: webgis_password DB_NAME: webgis_project depends_on: migrate: condition: service_completed_successfully migrate: build: context: . dockerfile_inline: | FROM mariadb:10.11 COPY db/schema.sql /schema.sql environment: DB_HOST: db DB_USER: webgis DB_PASSWORD: webgis_password DB_NAME: webgis_project command: > sh -c "mariadb --host=db --user=webgis --password=webgis_password webgis_project < /schema.sql" depends_on: db: condition: service_healthy db: image: mariadb:10.11 restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: root_password MARIADB_DATABASE: webgis_project MARIADB_USER: webgis MARIADB_PASSWORD: webgis_password volumes: - webgis_project_db:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 5 volumes: webgis_project_db: