php - Docker-Compose 在 Mac 上而不是 PC 上安装卷文件
问题描述
我正在使用 docker-compose 挂载使用 php:7.0-apache 运行 docker 映像并将我的文件挂载到 /var/www/html。当我运行 docker-compose up 时,一切正常。当我在 Mac 上访问 localhost:8080 时,我可以查看该站点应该出现的样子。当我在 Windows 上访问时,它显示 403 禁止 - 您无权访问此服务器上的 /。Apache/2.4.25 (Debian) 服务器位于 localhost 端口 8080。请帮助我需要它才能在 Windows 机器上运行。
码头工人-compose.yml
version: '3'
services:
web:
container_name: ves-corporate-site
build:
context: .
dockerfile: ./.docker/Dockerfile
volumes:
- ./dist:/var/www/html
ports:
- "8080:80"
Dockerfile
FROM php:7.0-apache
# Run Linux apt (Advanced Package Tool) to and install any packages
RUN apt-get update && \
apt-get install -y --no-install-recommends
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
# Enable mod_rewrite in apache modules
RUN a2enmod rewrite
文件结构
/
.docker/
Dockerfile
dist/
index.php
(many-other .php files)
docker-compose.yml
当我使用 docker-compose exec web bash 检查文件时,没有文件安装在 /var/www/html 中。
docker-compose exec web bash
ls
在 Mac 上,我看到了我的完整工作目录。
进一步潜水我在我的容器中找到了我的 apache2.conf
等/apache2/apache2.conf
在里面我发现了这个。这对为什么它不会让我正确挂载我的文件是有道理的?但是,当我更新它以允许我时,我不确定下一步。如何在保留更改以允许我写入 /var/www/html 的同时重新启动 apache 和容器。急需指导,请帮忙谢谢。
<Directory />
Options FollowSymLink
AllowOverride None
Order allow, deny
</Directory>
解决方案
经过长时间的试验,我发现这些文件没有从我的 docker-compose 文件中挂载。通过执行这些步骤,我能够解决问题并能够再次挂载文件。
- 从系统托盘打开 Docker 设置
- 选择共享驱动器
- 取消选择C盘并应用
- 重新选择C盘并应用
推荐阅读
- java - Maven - 无法执行目标 org.springframework.boot:spring-boot-maven-plugin:2.4.1:run
- python - 为什么在保持条件的同时调用 notify()?
- c++ - 如何修复 C++ 项目中 Visual Studio 2019 的表单或 UI 模糊?
- django - Django 连接表
- python - 熊猫填充(方法='填充')与填充()
- android - 该应用程序在模拟器中运行良好,但在手机中运行不正常
- spring - Spring MVC @GetMapping("") 在第一个请求中执行了 3 次
- import - 我无法在 pycharm 中正确导入 unicode 模块
- html - 为什么在溢出内输入绝对位置会导致页面上的全局滚动条?
- arrays - `int (*arr1)[10]` 与 `int arr2[10]` 有何不同?