【发布时间】:2020-01-03 16:02:04
【问题描述】:
我是 Docker 新手。我知道那里有很多答案。我试过这个链接host to container 但我无法解决我的问题。我正在使用 WordPress cli 图像为 WordPress 创建一个 docker。
这里是:
version: '3.1'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_files:/var/www/html
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpressdb
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 1
MYSQL_DATABASE: wordpressdb
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
wordpress_files:
db_data:
在上面的代码中,我使用的是与 MySQL 连接的官方 WordPress 图像,它已成功创建。接下来我想在那个 WordPress 镜像中安装 WordPress cli。以下是我找到的安装 WordPress cli 的命令。
echo "Installing WP-CLI"
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
我直接尝试将上述命令放在 Docker 文件的命令部分。但它失败了。于是我把内容保存在主机的install.sh文件中。
接下来我想将文件传输到 WordPress 映像,安装 WordPress 映像后应触发该文件,并应使用该文件在该映像中安装 cli。
这里是我修改的代码:
version: '3.1'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_files:/var/www/html
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpressdb
COPY /files/install.sh /var/www/html/ =>modified
command: =>modified
/var/www/html/files/install.sh =>modified
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 1
MYSQL_DATABASE: wordpressdb
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
wordpress_files:
db_data:
错误:
ERROR: yaml.scanner.ScannerError: while scanning a simple key
in "./word_press_docker_file.yml", line 18, column 6
could not find expected ':'
in "./word_press_docker_file.yml", line 19, column 6
但它又失败了。我尝试了几个 Stack Overflow 答案,但无法弄清楚。我尝试了COPY 命令,但失败了。
【问题讨论】:
标签: wordpress docker docker-compose dockerfile