我试图在Dockerfile的ENTRYPOINT中写入命令["sh", "-c", "gpfdist -d /usr/local -p 8081 &"],但导致无法启动容器;如果改成["sh", "-c", "gpfdist -d /usr/local -p 8081"]则能正常启动,但我希望gpfdist服务在后台启动,并且启动之后还希望执行其他指令,需要怎么写Dockerfile才能满足要求?
时间: 2023-07-19 12:28:44 浏览: 115
docker 使用CMD或者ENTRYPOINT命令同时启动多个服务
5星 · 资源好评率100%
您可以尝试将ENTRYPOINT中的命令改写成:
```
ENTRYPOINT ["sh", "-c", "gpfdist -d /usr/local -p 8081 & exec \"$@\"", "--"]
```
这里使用了exec命令,它会替换当前进程,让后面的命令作为第一个进程运行,同时&符号将gpfdist进程放到后台运行。
在启动容器时,可以传递其他需要执行的指令,例如:
```
docker run -it your_image /bin/bash
```
这样就可以在gpfdist服务启动后,进入容器并执行其他指令了。
阅读全文