首页 > 解决方案 > 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>

标签: phpdockerdocker-compose

解决方案


经过长时间的试验,我发现这些文件没有从我的 docker-compose 文件中挂载。通过执行这些步骤,我能够解决问题并能够再次挂载文件。

  1. 从系统托盘打开 Docker 设置
  2. 选择共享驱动器
  3. 取消选择C盘并应用
  4. 重新选择C盘并应用

推荐阅读