docker compose文件出现问题

7

我尝试使用以下链接提供的示例来将wordpress与mysql连接。

https://www.sitepoint.com/how-to-use-the-official-docker-wordpress-image/

如果不使用卷,它可以正常工作。但是,当我在docker-compose.yml文件中添加了卷时,它开始出现以下错误:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
  in "./docker-compose.yml", line 16, column 12

docker-compose.yml文件

web:
image: wordpress
links:
 - mysql
environment:
 - WORDPRESS_DB_PASSWORD=password
ports:
 - "127.0.0.3:8080:80"
mysql:
image: mysql:5.7
environment:
 - MYSQL_ROOT_PASSWORD=password
 - MYSQL_DATABASE=wordpress

working_dir: /var/www/html
volumes:
 - wordpress/wp-content/: /home/tgandhi

感谢您的帮助。

尝试在“/home/tgandhi”之前去掉空格。此外,如果那是相对路径,你可能需要执行“./wordpress/wp-content”。 - Rickkwa
尝试了提供的两种解决方案,但错误仍然相同。 - Tushar Gandhi
1个回答

15

首先working_dirvolumes需要放在compose文件中的web部分,而不是mysql部分。

其次,卷映射格式为<主机路径>:<容器路径>

由于您指定了/var/www/html作为工作目录,wordpress镜像使用/var/www/html/wp-content作为基本目录。因此,您需要将主机上静态文件所在的目录挂载到/var/www/html/wp-content中。我假设这个目录是~/wordpress

web:
  image: wordpress
  links:
    - mysql
  environment:
    - WORDPRESS_DB_PASSWORD=password
  ports:
    - "127.0.0.3:8080:80"
  working_dir: /var/www/html
  volumes:
    - /home/tgandhi/wordpress:/var/www/html/wp-content

mysql:
  image: mysql:5.7
  environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_DATABASE=wordpress

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接