簡體   English   中英

docker-compose:.env路徑問題

[英]docker-compose : Issue with .env path

我正在嘗試運行一個與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

此操作失敗,並顯示以下錯誤:

ERROR: Couldn't find env file: /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=myproject

我的docker-compose -v:

docker-compose version 1.9.0, build 2585387

有沒有人知道為什么會失敗?

干杯!

好的,經過多次嘗試,我已經成功啟動了我的應用程序。

我試圖做的是:

  1. 使用Capistrano的功能“鏈接文件”將當前目錄中的.env文件進行符號鏈接:/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 

最后一個解決方案有效,我目前正在使用這個解決方案進行部署。 如果我發現新問題或改進,我會發布有關此問題的更新。

但是,使用符號鏈接的.env文件,docker-compose失敗是正常的嗎?

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM