Docker 撰写与 shell 环境变量错误



我正在为应用程序运行Docker部署。我正在挂载一个卷,我希望外部路径由 shell 环境变量提供。我收到此错误:

错误:对于视频服务器

无法为服务视频服务器创建容器:无效的卷规格:"46b9d2fb3b9b13c9404d31bae571dac3f633122393c4a77f2561afb8aed5c06e:=/opt/videos:rw":类型"卷"的装载配置无效:无效的装载路径:"=/opt/videos"装载路径必须是绝对的

我的码头工人撰写配置是这样的:

video-server:
build:
context: .
dockerfile: video-server_Dockerfile
container_name: video-server
networks:
- videoManagerNetwork
environment:
- VIDEO_MANAGER_DIR=/opt/videos
volumes:
- ${VIDEO_MANAGER_DIR_PROD}=/opt/videos
ports:
- 9000:8080

通过执行这两个命令,我可以看到VIDEO_MANAGER_DIR_PROD环境变量的正确值,所以我知道它在我的 shell 上:

echo $VIDEO_MANAGER_DIR_PROD
sudo echo $VIDEO_MANAGER_DIR_PROD

奇怪的是,如果我完全擦除我的 docker 配置(sudo docker system prune --all --volumes),然后第一次运行 docker-compose (sudo docker-compose up -d),一切正常。

但是,如果我取下容器,重建它,然后尝试再次运行相同的命令(sudo docker-compose up -d),那么我会收到上面显示的错误。

不能像变量一样分配源卷,因此将使用此:进行此分配。

文档 关于 Docker Composevolumes: docs.docker.com

video-server:
build:
context: .
dockerfile: video-server_Dockerfile
container_name: video-server
networks:
- videoManagerNetwork
environment:
- VIDEO_MANAGER_DIR: /opt/videos
volumes:
- ${VIDEO_MANAGER_DIR_PROD}:/opt/videos
ports:
- 9000:8080

最新更新