我要启动我的容器,一旦它运行,就在容器中启动服务。我正在使用docker-compose文件,并按如下所示在“命令”部分中启动服务
services:
service1:
image: image_name:tag
container_name: cname
command:
- exec start_service $VAR1 $VAR2
ports:
- "5458:5000"
env_file: ./variables.txt
VAR1
和VAR2
的值来自env_file
部分中指定的variables.txt文件。容器的$ PATH中也存在start_service
。当我启动docker-compose时,它首先显示一些警告,提示未设置VAR1
和VAR2
,并且还会出现以下错误消息。
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
。
答案 0 :(得分:-1)
您不需要将exec
放在start_service
之前。 Docker将为您做到这一点,因此,如果您仔细查看错误消息,您会发现exec: \"exec start_service \"