【问题标题】:Why isn't docker-compose seeing my .env file when executing an ssh command inside a bash script?为什么在 bash 脚本中执行 ssh 命令时 docker-compose 看不到我的 .env 文件?
【发布时间】:2018-06-19 07:24:01
【问题描述】:

当我以用户 fish 的身份 ssh 到 server.foo.com 并执行 docker-compose up 时,docker 将看到一个对应的 .env 文件,该文件位于同一目录。

[fish@staging-core ~]$ ls -al
total 28
drwx------. 4 fish fish  191 Jun 18 21:47 .
drwxr-xr-x. 4 root   root     34 Jun 18 20:35 ..
-rw-------. 1 fish fish  558 Jun 18 22:15 .bash_history
-rw-r--r--. 1 fish fish   18 Apr 11 00:53 .bash_logout
-rw-r--r--. 1 fish fish  193 Apr 11 00:53 .bash_profile
-rw-r--r--. 1 fish fish  231 Apr 11 00:53 .bashrc
-rw-r--r--. 1 fish fish    0 Jun 18 20:19 .cloud-locale-test.skip
drwx------. 2 fish fish   25 Jun 18 21:41 .docker
-rw-r--r--. 1 fish fish  838 Jun 18 22:15 .env
-rw-r--r--. 1 fish fish 1066 Jun 18 22:15 docker-compose.yml
drwx------. 2 fish fish   29 Jun 18 20:35 .ssh

但是,当我尝试通过 bash 脚本运行它时,我收到以下错误:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null fish@server.foo.com docker-compose down && docker-compose pull && docker-compose up -d && docker-compose scale api=4 && docker-compose scale ml=4

我明白了

Warning: Permanently added 'server.foo.com,165.227.100.2' (ECDSA) to the list of known hosts.
Removing network core_default
Network core_default not found.
WARNING: The FISH_TAG variable is not set. Defaulting to a blank string.

在 bash 脚本中执行 ssh 命令时,为什么 docker-compose 看不到我的 .env 文件?

【问题讨论】:

  • 您是否尝试用双引号将所有链式指令括起来?似乎只有第一条指令在远程服务器中执行,而其余的则在本地 shell 上执行
  • @ArthurAttout 你就在我前面 :-) 确实是引用问题,"&&" 之后的所有内容都在主机上执行,所以报错信息来自本地 docker-compose!我建议您将此添加为答案!

标签: docker ssh docker-compose


【解决方案1】:

你应该双引号你的命令,否则链接的指令将在本地 shell 上执行

 ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null fish@server.foo.com 
 "docker-compose down && \
 docker-compose pull && \
 docker-compose up -d && \
 docker-compose scale api=4 && \
 docker-compose scale ml=4"

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 2020-06-24
    • 2017-08-10
    • 2022-08-02
    • 2021-10-30
    • 2021-05-17
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多