我在 openshift 上运行基于 opencpu 的映像,每次 pod 启动时,仅几秒钟后,它就会因错误而崩溃:
command terminated with non-zero exit code: Error executing in Docker Container: 137
Run Code Online (Sandbox Code Playgroud)
事件选项卡仅显示以下三个事件,终端日志也不显示任何内容。
Back-off restarting the failed container
Pod sandbox changed, it will be killed and re-created.
Killing container with id docker://opencpu-test-temp:Need to kill Pod
Run Code Online (Sandbox Code Playgroud)
我真的不知道为什么容器每隔几秒钟就重新启动一次。此映像在本地运行良好。
有没有人给我一个关于如何调试这个问题的线索?
在我的 docker-compose.yml 中,我定义了两个服务,app以及db.
version: "3.7"
services:
app:
image: my_app
container_name: my-app
ports:
- ${MY_PORT}:${MY_PORT}
env_file:
- ./app.env
...
depends_on:
- db
environment:
- DATABASE_URL=${DB_URL}
db:
image: my_db
container_name: my-db
env_file:
- ./db.env
ports:
- ${DB_PORT}:${DB_PORT}
Run Code Online (Sandbox Code Playgroud)
正如你在上面看到的,我已经定义了两个 env 文件,app.env并db.env在和服务的env_file选项中。appdb
应用程序.env:
MY_PORT=8081
Run Code Online (Sandbox Code Playgroud)
db.env:
DB_PORT=4040
DB_URL=postgres://myapp:app@db:4040/myapp
Run Code Online (Sandbox Code Playgroud)
我想检查我的 docker-compose 是否可以成功读取环境变量。所以,我运行命令docker-compose config。但是输出是
$ docker-compose config
WARNING: The MY_PORT variable is not set. Defaulting to a blank string.
WARNING: The DB_URL variable …Run Code Online (Sandbox Code Playgroud)