使用docker-compose启动容器时执行命令时出错

时间:2019-08-30 16:09:50

标签: docker docker-compose

我要启动我的容器,一旦它运行,就在容器中启动服务。我正在使用docker-compose文件,并按如下所示在“命令”部分中启动服务

services:
  service1:
    image: image_name:tag
    container_name: cname
    command:
         - exec start_service $VAR1 $VAR2
    ports:
        - "5458:5000"
    env_file: ./variables.txt
VAR1VAR2

值来自env_file部分中指定的variables.txt文件。容器的$ PATH中也存在start_service。当我启动docker-compose时,它首先显示一些警告,提示未设置VAR1VAR2,并且还会出现以下错误消息。

 Cannot start service service1: oci runtime error: container_linux.go:235: starting container process caused "exec: \"exec start_service   \": executable file not found in $PATH".

所以看起来该命令是在设置环境变量之前执行的,并且它还说start_service不在$ PATH中,这是不正确的。

这是怎么了?

p.s。我进行了一些测试,并在docker-compose中注释了该命令,当容器启动时,我进入了容器,并确保$ PATH中存在start_service

1 个答案:

答案 0 :(得分:-1)

您不需要将exec放在start_service之前。 Docker将为您做到这一点,因此,如果您仔细查看错误消息,您会发现exec: \"exec start_service \"

相关问题