Sol*_*osa 6 wordpress docker docker-compose
我的项目目录上的树命令的输出显示以下布局。
其中code文件夹包含标准的wordpress文件,db文件夹是将容器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;'
Run Code Online (Sandbox Code Playgroud)
下面是显示 nginx 配置的 site.conf 文件。
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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行 docker-compose up -d 并点击http://localhost:8080 时,它显示 502 bad gateway 错误。
为什么它不起作用?我希望它显示 WordPress 安装页面。
docker ps
Run Code Online (Sandbox Code Playgroud)
好吧,问题似乎出在 phpfpm 服务部分的命令步骤上。
command: docker-php-ext-install mysqli
Run Code Online (Sandbox Code Playgroud)
如果我在 docker-compose 文件中注释此行并运行它,容器也会出现并连接,但我必须通过此命令在 fpm 节点上手动安装它
docker exec lem-fpm docker-php-ext-install mysqli
Run Code Online (Sandbox Code Playgroud)
&
docker-compose restart
Run Code Online (Sandbox Code Playgroud)
我得到了 wp-installation 页面,但这并不方便,破坏了自动化和容器化的整个目的,我希望这个过程自动化,所以请告诉我是否有办法让它仅通过 docker-compose 工作?
创建一个 shell 脚本 (start.sh),将其放在 docker-compose.yml 旁边并使其可执行:
#!/bin/bash
docker-php-ext-install mysqli
php-fpm
Run Code Online (Sandbox Code Playgroud)
将其映射到您的服务中并更改命令:
phpfpm:
container_name: lemp-fpm
image: php:7-fpm
volumes:
- ./code:/code
- ./start.sh:/usr/local/bin/start.sh
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
links:
- mariadb
command: /usr/local/bin/start.sh
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2444 次 |
| 最近记录: |