Docker 创建服务失败,原因是“未指定命令”
我是集装箱行业的新手。 我试图在docker_composer的帮助下启动并运行ora2pg,但收到以下错误消息: postgres_db是最新的 正在创建ora2pg_客户端。。。错误 错误:对于ora2pg\u,客户端无法为服务ora2pg创建容器:未指定命令 错误:for ora2pg无法为服务ora2pg创建容器:未指定命令 错误:在启动项目时遇到错误 我的docker-composer.yml如下所示:Docker 创建服务失败,原因是“未指定命令”,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我是集装箱行业的新手。 我试图在docker_composer的帮助下启动并运行ora2pg,但收到以下错误消息: postgres_db是最新的 正在创建ora2pg_客户端。。。错误 错误:对于ora2pg\u,客户端无法为服务ora2pg创建容器:未指定命令 错误:for ora2pg无法为服务ora2pg创建容器:未指定命令 错误:在启动项目时遇到错误 我的docker-composer.yml如下所示: version: "3.7" services: postgresql: r
version: "3.7"
services:
postgresql:
restart: always
image: postgres
container_name: "postgres_db"
ports:
- "5432:5432"
environment:
- DEBUG=false
- DB_USER=
- DB_PASS=
- DB_NAME=
- DB_TEMPLATE=
- DB_EXTENSION=
- REPLICATION_MODE=
- REPLICATION_USER=
- REPLICATION_PASS=
- REPLICATION_SSLMODE=
volumes:
- ./postgres/data:/var/lib/postgresql/data
- ./postgres/initdb:/docker-entrypoint-initdb.d
ora2pg:
image: flockers/ora2pg
container_name: "ora2pg_client"
environment:
- DB_HOST=127.0.0.1
- DB_SID=xe
- ORA2PG_USER=MAX
- DB_PASS=MAX
volumes:
- ./ora2pg/export:/export
注意:我在同一台机器上已经有一个Oracle数据库
谢谢大家! flockers/ora2pg没有指定任何CMD,您可以通过运行以下命令来显示:
docker pull flockers/ora2pg
docker image inspect flockers/ora2pg
[
...
"Cmd": null
...
]
Docker图像中的CMD和ENTRYPOINT将定义它们的运行方式,请参阅。在您正在运行的映像中都没有定义
您可以在docker compose文件中使用定义命令:
ora2pg:
image: flockers/ora2pg
container_name: "ora2pg_client"
command: ["some", "command", "running", "your", "database"]
...
flockers/ora2pg没有指定任何CMD,您可以通过运行以下命令来显示:
docker pull flockers/ora2pg
docker image inspect flockers/ora2pg
[
...
"Cmd": null
...
]
Docker图像中的CMD和ENTRYPOINT将定义它们的运行方式,请参阅。在您正在运行的映像中都没有定义
您可以在docker compose文件中使用定义命令:
ora2pg:
image: flockers/ora2pg
container_name: "ora2pg_client"
command: ["some", "command", "running", "your", "database"]
...
如果查看Dockerfile flockers/ora2pg,则CMD或入口点缺失
ora2pg:
image: flockers/ora2pg
container_name: "ora2pg_client"
environment:
- DB_HOST=127.0.0.1
- DB_SID=xe
- ORA2PG_USER=MAX
- DB_PASS=MAX
volumes:
- ./ora2pg/export:/export
command: tail -f /dev/null
因此这里的命令是:tail-f/dev/null它只会让你的容器保持运行,不会做任何事情,用你的命令替换它。如果你查看Dockerfile flockers/ora2pg,CMD或entrypoint就会丢失
ora2pg:
image: flockers/ora2pg
container_name: "ora2pg_client"
environment:
- DB_HOST=127.0.0.1
- DB_SID=xe
- ORA2PG_USER=MAX
- DB_PASS=MAX
volumes:
- ./ora2pg/export:/export
command: tail -f /dev/null
所以这里的命令:tail-f/dev/null它只会让你的容器保持运行,不会做任何事情,用你的命令替换它。巧合,只是几秒钟的时间差,然后发布答案:Dmine也是,谢谢你对StackOverflow的贡献亲爱的Pierre谢谢你们:巧合,在发布答案时只差几秒钟:我也是Dmine,感谢为StackOverflow做出贡献亲爱的Pierre谢谢你们两位: