相当于docker run的“-c”

时间:2017-09-21 20:39:33

标签: postgresql docker ansible

使用自定义配置运行docker postgres容器,您将使用如下命令:

“docker container run -d postgres -c max_connections = 6 -c log_lock_waits = on”

我的任务是:

name: Start postgis
  become: true
  docker_container:
    name: postgis
    image: "{{ ecr_url }}"    
    network_mode: bridge
    exposed_ports:
      5432
    published_ports:
      5432:5432
    state: started
    volumes:
    - /mnt/datadir/pgdata:/var/lib/postgresql/data

确实会运行容器,但我的问题是:

docker run命令中“-c”标志的等效内容是什么?

感谢larsks的回答,你可以一个接一个地发送多个命令

published_ports:
      5432:5432
    state: started
    command:
      -c shared_buffers = 24000MB
      -c work_mem=16MB
      -c maintenance_work_mem = 128MB
      -c etcetera

1 个答案:

答案 0 :(得分:3)

请记住docker run的语法是:

docker run [...docker options...] image [...command and args...]

考虑到这一点,请查看命令行:

docker container run -d postgres -c max_connections=6 -c log_lock_waits=on

这些-c参数在图像名称后出现,因此它们是 docker run标志。它们是传递给容器的命令的一部分,在这种情况下,它们最终成为postgres命令的参数。

所以在Ansible中,你只需要:

docker_container:
  name: postgis
  image: "{{ ecr_url }}"    
  command: "-c max_connections=6 -c log_lock_waits=on"