我是 docker 和 docker-compose 的新手,我遇到了持久存储的问题。我有三个文件夹,我需要将文件保存在 docker 之外。我不知道我做错了什么。
docker-compose.yaml
version: '3.3'
services:
webserver:
build:
context: ./
dockerfile: webserver.DockerFile
ports:
- 80:80
- 443:443
volumes:
- html:/var/www/html
- platforms:/var/www/platforms
- sites-available:/etc/apache2/sites-available
mysql-server:
image: mysql:8.0.20
restart: always
environment:
MYSQL_ROOT_PASSWORD: somepassword555
phpmyadmin:
image: phpmyadmin/phpmyadmin:5.0.1
restart: always
environment:
PMA_HOST: mysql-server
PMA_USER: root
PMA_PASSWORD: somepassword555
ports:
- "8080:80"
当我在此基础上运行构建时,我在网络服务器中获得了空文件夹。主机上的文件夹不为空。
编辑:澄清
在 HOST 上有:
webserver.DockerFile
docker-compose.yml
- html
--- index.php
--- ...
- platforms
--- dir1
--- dir2
--- dir3
--- ...
- sites-available
--- backend.conf
--- frontend.conf
在 webserver.Dockerfile 里面有:
RUN mkdir -p /var/www/html/backend
RUN mkdir -p /var/www/html/frontend
RUN a2ensite backend.conf frontend.conf
它不会在 HOST 上创建 'backend' 和 'frontend' 目录,然后在 a2ensite 上失败,并出现错误:
ERROR: Site backend does not exist!
ERROR: Site frontend does not exist!
ERROR: Service 'webserver' failed to build: The command '/bin/sh -c a2ensite backend.conf frontend.conf' returned a non-zero code: 1
这一切都向我表明,我想与 HOST 链接/安装的 DOCKER 上的目录实际上是空的:
/var/www/html
/var/www/platforms
/etc/apache2/sites-available
但 HOST 上的目录不为空。