【发布时间】:2017-06-13 13:46:17
【问题描述】:
上下文
我想在 Windows 8 上运行 Docker Compose 应用程序。我在 Ubuntu 16.04 下完成了它,它运行良好。
这个 Docker Compose 运行:
- nginx
- php-fpm
这两个容器使用卷。
文件
我的.env 文件:
COMPOSE_CONVERT_WINDOWS_PATHS=1
APPLICATION_PATH=//C/Users/my_user/Documents/Development/my_application
我的docker-compose.yml 文件:
version: '2'
services:
web:
build: ../application-web/
ports:
- "80:80"
tty: true
# Add a volume to link php code on the host and inside the container
volumes:
- ${APPLICATION_PATH}:/usr/share/nginx/html/application
- ${APPLICATION_PATH}/docker_files/docker-assistant:/usr/share/nginx/html/assistant
# Add hostnames to allow devs to call special url to open sites
extra_hosts:
- "localhost:127.0.0.1"
- "assistant.docker:127.0.0.1"
- "application.dev:127.0.0.1"
depends_on:
- custom-php
links:
- custom-php:custom-php
custom-php:
build: ../application-php/
ports:
- "50:50"
volumes:
- ${APPLICATION_PATH}:/usr/share/nginx/html/application
- ${APPLICATION_PATH}/docker_files/docker-assistant:/usr/share/nginx/html/assistant
问题
当我运行docker-compose up 时,一切顺利。容器启动。
但是,当我尝试在网络浏览器中访问 http://192.168.99.100 时,出现 403 错误。
我的调查显示 nginx 和 php 容器中没有挂载的卷:
docker exec -it compose_web_1 bash
ls -la /usr/share/nginx/html/assistant/
表演
drwxr.xr.x 2 root root 80 May 18 15:30 .
drwxr.xr.x 2 root root 4096 May 18 16:10 ..
Docker 似乎无法挂载卷。为什么?
其他信息
- 我正在使用 Docker 工具箱:https://www.docker.com/products/docker-toolbox
- 我知道这是一个好的 IP 地址,因为当我尝试在我的网络浏览器中访问它时,我看到我的 nginx 容器显示日志。
- 设置为
//C:/Users/my_user/Documents/Development/my_application的环境变量APPLICATION_PATH无法工作,因为Docker使用“:”字符作为卷声明的分隔符:错误:卷 //C:/Users/my_user/Documents/Development/my_application://C:/Users/my_user/Documents/Development/my_application 格式不正确,应该是 external:internal[:mode]
-
这不是 nginx 的问题,因为当我在文件夹中创建
index.phtml文件时,我可以运行它:<?php echo 'Hello world!';
【问题讨论】:
-
你使用“docker for windows”吗?您能否验证卷“C”是否已共享?您能否在应用程序路径中添加冒号(
APPLICATION_PATH=C:/Users/my_user/Documents/Development/my_application)。也许this 会有所帮助。此外,请验证IP地址。 -
如何验证“C”是共享的?对于其他问题,我编辑了我的原始帖子。
-
@Holger 感谢您的问题,我能够找到问题所在。您可以在下面看到我的回答,谢谢!
-
和往常一样,我很高兴知道为什么我的问题被否决了:|
标签: docker docker-compose