Docker-Compose与shell环境变量错误

时间:2019-03-27 20:55:44

标签: docker docker-compose

我正在为应用程序运行docker部署。我正在安装一个卷,我想通过shell环境变量提供外部路径。我收到此错误:

ERROR: for video-server  Cannot create container for service video-server: invalid volume specification: '46b9d2fb3b9b13c9404d31bae571dac3f633122393c4a77f2561afb8aed5c06e:=/opt/videos:rw': invalid mount config for type "volume": invalid mount path: '=/opt/videos' mount path must be absolute

我的docker-compose配置是这样的:

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),则会收到上面显示的错误。

一些帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您不能像分配变量一样分配源卷,因此您将使用//*[@id="907"] 进行分配。

有关Docker Compose :的文档:docs.docker.com

volumes