Вывод команды дерева в директории моего проекта показывает следующий макет.
, где папка кода содержит стандартные файлы WordPress, а папка БД - для сопоставленияконтейнер данных sql в каталог хоста.
содержимое docker-compose.yml показано здесь:
mariadb:
container_name: lemp-mariadb
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=root.maria
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress
volumes:
- ./db:/var/lib/mysql
phpfpm:
container_name: lemp-fpm
image: php:7-fpm
volumes:
- ./code:/code
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
links:
- mariadb
command: docker-php-ext-install mysqli
nginx:
container_name: lemp-nginx
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/default.conf
links:
- phpfpm
command: nginx -g 'daemon off;'
и ниже - файл site.conf, который показывает конфигурацию nginx.
server {
listen 80;
root /code;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass phpfpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
, когда я запускаю docker-compose up -d & hit http://localhost:8080,, это показывает 502 ошибку шлюза.
Почему это не работает ??Я хочу показать страницу установки WordPress.
docker ps
Хорошо, похоже, проблема заключается в шаге команды в разделе службы phpfpm.
command: docker-php-ext-install mysqli
Если я комментирую эту строку в файле docker-compose и запускаю ее, контейнеры тоже подходят и подключаются, но я должен вручную установить ее на узле fpm с помощью этой команды
docker exec lem-fpm docker-php-ext-install mysqli
&
docker-compose restart
и я получаю страницу установки wp, но это не удобно, убивает всю цель автоматизации и контейнеризации, я хочу, чтобы этот процесс был автоматизирован, поэтому, пожалуйста, скажите, есть ли способзаставить его работать только через docker-compose only ??