首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker_compose.yml抛出错误中的参数,但不使用docker运行

docker_compose.yml抛出错误中的参数,但不使用docker运行
EN

DevOps用户
提问于 2022-06-28 06:15:55
回答 2查看 222关注 0票数 0

我正处于绝望的帮助之中。我要翻译这个docker命令:

代码语言:javascript
复制
docker run -d -p 5434:5432 --name postgres-2 livingdocs/postgres:14.4 standby -d "host=host.docker.internal port=5433 user=postgres target_session_attrs=read-write"

它运行得完美无缺,但当我试图将其转换为docker_compose.yml时:

代码语言:javascript
复制
  postgres-2:
    image: livingdocs/postgres:14.4
    container_name: postgres-SLAVE
    ports:
      - "5434:5432"
    volumes:
      - postgres2:/tmp/data
    entrypoint: "/scripts/entrypoint standby"
    command:
      - host=host.docker.internal
      - port=5433
      - user=postgres
      - target_session_attrs=read-write"

它抛出:

代码语言:javascript
复制
pg_basebackup: error: too many command-line arguments (first is "host=host.docker.internal")

Try "pg_basebackup --help" for more information.

保存yml文件并执行之后:docker-compose up -d --remove-orphans

我已经尝试过在线转换工具和大约300个变体,但我不能像码头运行一样工作。

EN

回答 2

DevOps用户

发布于 2022-06-28 13:31:53

为什么在docker-compose.yml中设置entrypoint,而docker run命令没有--entrypoint选项?您还从调用中删除了-d选项,并且将剩下的选项作为单独的参数传递,而不是在docker run调用中使用的单个字符串。

与您的docker run命令行等效的是:

代码语言:javascript
复制
  postgres-2:
    image: livingdocs/postgres:14.4
    container_name: postgres-SLAVE
    ports:
      - "5434:5432"
    command:
      - standby
      - -d
      - "host=host.docker.internal port=5433 user=postgres target_session_attrs=read-write"

我已经删除了volumes节,因为您没有在docker run命令行上使用任何卷。

票数 0
EN

DevOps用户

发布于 2022-06-28 21:32:09

我让它和:

代码语言:javascript
复制
  postgres-2:
    image: livingdocs/postgres:14.4
    container_name: postgres-SLAVE
    ports:
      - "5434:5432"
    volumes:
      - postgres2:/tmp/data
    entrypoint:
      - standby
    command: "--host host.docker.internal --port 5433 --user postgres"
票数 0
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/16202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档