gpt4 book ai didi

docker-compose : Issue with . 环境路径

转载 作者:行者123 更新时间:2023-12-02 18:40:20 28 4
gpt4 key购买 nike

我正在尝试运行一个使用 Capistrano 部署的 dockerized 项目

我的应用程序位于 /opt/hosting/my-project 目录中,结构如下:

/opt/hosting/my-project
/current -> releases/201704251234/
/releases/201704251234/
/repo/
revisions.log
/shared/

目前,我要做的只是:

cd /opt/hosting/my-project/current
docker-compose -f docker-compose-production.yml up -d

失败并出现以下错误:

错误:找不到环境文件:/opt/hosting/my-project/shared/.env

这是我的docker-compose-production.yml的内容

version: "2"

services:
app:
build: ./
container_name: myproject_app
env_file:
- /opt/hosting/my-project/shared/.env
expose:
- 9000
volumes:
- /opt/hosting/my-project/:/opt/hosting

所需的 .env 文件存在,可读且似乎不包含任何错误。这是它的内容:

COMPOSE_PROJECT_NAME=我的项目

我的 docker-compose -v :

docker-compose 版本 1.9.0,构建 2585387

有没有人知道为什么会失败?

干杯!

最佳答案

好的,经过多次尝试,我已经成功启动了我的应用程序。

我尝试做的是:

  1. 使用 Capistrano 的“链接文件”功能对当前目录中的 .env 文件进行符号链接(symbolic link):/current/.env -> ../../shared/.env不幸的是,这失败了,因为 docker-compose 似乎找不到不在执行目录中的文件或文件夹。

  2. 从 Capistrano 配置中删除 .env 链接文件,并通过自定义 Capistrano 任务手动复制它。

    namespace :env_file do
    desc "Copy shared .env file"
    task :copy do
    on roles(:docker) do
    within current_path do
    execute "cp #{shared_path}/.env #{current_path}/.env"
    end
    end
    end
    end

最后一个解决方案有效,我目前正在使用这个进行部署。如果发现新问题或改进,我会发布有关此问题的更新。

但是,docker-compose 使用符号链接(symbolic link)的 .env 文件失败是否正常?

干杯

关于docker-compose : Issue with . 环境路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664621/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com