Docker-compose Apache 将外部本地目录映射到文档根目录
Docker-compose Apache mapping external local directory to document root
我是 Docker 的新手,我正在尝试使用 [=35= 创建本地开发 LAMP(更准确地说是 Apache、MariaDB、PHP)堆栈]-撰写来自 Docker 集线器的现有 Docker 图像,如果可能,没有 Docker 文件,用于多个本地 Web 项目。
我想将我的本地 Web 项目目录 /Users/myusername/projects/myprojectname
映射到 Apache 容器的默认文档根目录(对于 Apache image I'm using 似乎是 /app
)
这是我的 docker-compose.yml
文件:
version: "3"
services:
mariadb:
image: mariadb:10.5
container_name: mariadb
restart: always
ports:
- 8889:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=localmysqluser
- MYSQL_PASSWORD=localmysqlpwd
php:
image: bitnami/php-fpm:7.4
container_name: php
ports:
- 9000:9000
volumes:
- /Users/myusername/projects/myprojectname:/app
apache:
image: bitnami/apache:latest
container_name: apache
restart: always
ports:
- 8080:80
volumes:
- ./apache-vhosts/myapp.conf:/vhosts/myapp.conf:ro
- /Users/myusername/projects/myprojectname:/app
depends_on:
- mariadb
- php
但是当我执行 docker-compose up -d
然后浏览到 http://localhost:8080/
时,我得到的数据为零。我哪里错了?是我docker-compose.yml
配置不对,还是系统权限问题?
我一直在查看 ,但我希望尽可能不使用任何 Docker 文件。
进一步的问题:是否可以使 Apache 在我的本地浏览器中可以浏览本地目录 /Users/myusername/projects/
?
正如 J. Song 的回答,此 Apache Docker 映像的公开端口号是 8080,而不是 80。
所以我们只需要将Apache服务的端口映射改为8080:8080
而不是8080:80
。
我是 Docker 的新手,我正在尝试使用 [=35= 创建本地开发 LAMP(更准确地说是 Apache、MariaDB、PHP)堆栈]-撰写来自 Docker 集线器的现有 Docker 图像,如果可能,没有 Docker 文件,用于多个本地 Web 项目。
我想将我的本地 Web 项目目录 /Users/myusername/projects/myprojectname
映射到 Apache 容器的默认文档根目录(对于 Apache image I'm using 似乎是 /app
)
这是我的 docker-compose.yml
文件:
version: "3"
services:
mariadb:
image: mariadb:10.5
container_name: mariadb
restart: always
ports:
- 8889:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=localmysqluser
- MYSQL_PASSWORD=localmysqlpwd
php:
image: bitnami/php-fpm:7.4
container_name: php
ports:
- 9000:9000
volumes:
- /Users/myusername/projects/myprojectname:/app
apache:
image: bitnami/apache:latest
container_name: apache
restart: always
ports:
- 8080:80
volumes:
- ./apache-vhosts/myapp.conf:/vhosts/myapp.conf:ro
- /Users/myusername/projects/myprojectname:/app
depends_on:
- mariadb
- php
但是当我执行 docker-compose up -d
然后浏览到 http://localhost:8080/
时,我得到的数据为零。我哪里错了?是我docker-compose.yml
配置不对,还是系统权限问题?
我一直在查看
进一步的问题:是否可以使 Apache 在我的本地浏览器中可以浏览本地目录 /Users/myusername/projects/
?
正如 J. Song 的回答,此 Apache Docker 映像的公开端口号是 8080,而不是 80。
所以我们只需要将Apache服务的端口映射改为8080:8080
而不是8080:80
。