В настоящее время я пытаюсь докеризировать приложение Laravel, мне удалось создать свой Dockerfile и docker-compose.yml с нужными мне зависимостями. Тем не менее, я изо всех сил пытаюсь заставить php-fpm включиться, чтобы показать мое приложение.
Докерфайл
# Установить мастер-образ
ИЗ php:8.0-fpm-alpine
# Скопируйте composer.lock и composer.json
КОПИРОВАТЬ composer.lock composer.json /var/www/html/
# Установить рабочий каталог
РАБОЧИЙ КАТАЛОГ /var/www/html
# Установить дополнительные зависимости
RUN apk update && apk add --no-cache \
построить базовую тень vim curl \
php8 \
php8-fpm \
php8-общий \
php8-pdo \
php8-pdo_mysql\
php8-mysqli \
php8-mbstring \
php8-xml \
php8-openssl \
php8-json \
php8-фар\
php8-zip \
php8-gd \
php8-дом \
сессия php8 \
php8-zlib \
узлы \
нпм
# Добавить и включить расширения PHP-PDO
ЗАПУСК docker-php-ext-install pdo pdo_mysql
ЗАПУСК docker-php-ext-enable pdo_mysql
# Установить компоновщик PHP
ЗАПУСК curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Удалить кеш
ВЫПОЛНИТЬ rm -rf /var/cache/apk/*
# Добавьте UID '1000' к www-данным
RUN usermod -u 1000 www-данные
# Скопировать существующие разрешения каталога приложений
КОПИРОВАТЬ --chown=www-данные:www-данные. /var/www/html
# Изменить текущего пользователя на www
ПОЛЬЗОВАТЕЛЬ www-данные
# Установить зависимости приложения
КОПИРОВАТЬ package.json /var/www/html/
ЗАПУСТИТЬ установку npm
ЗАПУСК npm запустить dev
# Выставляем порт 9000 и запускаем сервер php-fpm
ВЫСТАВИТЬ 9000
CMD ["php-fpm"]
докер-compose.yml
версия: '3'
Сервисы:
#Приложение Laravel
приложение:
строить:
контекст: .
докерфайл: Докерфайл
изображение: heychazza/joinservers.com
имя_контейнера: приложение
перезапуск: если не остановлен
телетайп: правда
среда:
SERVICE_NAME: приложение
SERVICE_TAGS: разработка
рабочий_каталог: /var/www/html
разоблачать:
- "9000:80"
тома:
- ./:/var/www/html
сети:
- майнет
#Сервис Nginx
нгинкс:
изображение: nginx:alpine
имя_контейнера: nginx
перезапуск: если не остановлен
телетайп: правда
порты:
- "8080:80"
тома:
- ./:/var/www/html
- ./развертывание/nginx/conf.d/:/etc/nginx/conf.d/
#- ./nginx/ssl/:/etc/nginx/ssl/
зависит от:
- приложение
сети:
- майнет
#Служба MySQL
дБ:
изображение: mariadb: последний
имя_контейнера: БД
перезапуск: если не остановлен
телетайп: правда
порты:
- "33060:3306"
среда:
MYSQL_DATABASE: ларавелдб
MYSQL_USER: ларавель
MYSQL_PASSWORD: laravelpassworddb
MYSQL_ROOT_PASSWORD: rootpasswordmysql
MYSQL_ROOT_HOST: '%'
тома:
- mysqldata:/var/lib/mysql/
сети:
- майнет
#Докер Сети
сети:
майнет:
водитель: мост
#Тома
тома:
mysqldata:
водитель: местный
Что я делаю? Я запускаю Docker с MacBook и хочу развернуть его на рабочей машине Debian.
Я все еще новичок в докере, поэтому извиняюсь, если что-то упустил.