Reputation: 13
I made a PHP app and want to make a Docker image out of it. For my app to work, I need PHP-apache, MySQL, and PhpMyAdmin.
When I run docker-compose up, everything works fine.
So, I did docker ps -a and got:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa19aa03b658 docker2-php-apache-environment "docker-php-entrypoi…" 9 minutes ago Up 26 seconds 0.0.0.0:8000->80/tcp php-apache
cd6a1d03c74c phpmyadmin/phpmyadmin "/docker-entrypoint.…" 9 minutes ago Up 26 seconds 0.0.0.0:8080->80/tcp docker2-phpmyadmin-1
ff13a69f0fde mysql "docker-entrypoint.s…" 9 minutes ago Up 27 seconds 33060/tcp, 0.0.0.0:9906->3306/tcp db
I want to push my project to Docker Hub, but I am not sure how to do it. When I commit and push docker2-php-apache-environment(fa19aa03b658) and pull the image on a different machine, I am missing MySql and PhpMyAdmin.
Is it possible to push the whole project so that when somebody pulls and runs the image, everything works?
I made docker-compose.yml which looks like this:
version: '3.8'
services:
php-apache-environment:
container_name: php-apache
build:
context: ./php
dockerfile: Dockerfile
depends_on:
- db
volumes:
- ./php/src:/var/www/html/
ports:
- 8000:80
db:
container_name: db
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 12345
MYSQL_DATABASE: turisticka_agencija
ports:
- "9906:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- '8080:80'
restart: always
environment:
PMA_HOST: db
depends_on:
- db
Dockerfile looks like this:
FROM php:8.0-apache
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
RUN apt-get update && apt-get upgrade -y
# Install build dependencies and the OPcache extension
RUN apk add --no-cache $PHPIZE_DEPS \
&& docker-php-ext-install opcache \
&& apk del $PHPIZE_DEPS
# Copy the opcache.ini into your Docker image
COPY opcache.ini /usr/local/etc/php/conf.d/opcache.ini
# Run your application
CMD php-fpm
Upvotes: 0
Views: 30