【发布时间】:2018-07-21 01:09:44
【问题描述】:
我在这里遇到了 ansible docker_container 命令的问题。
- name: Start Docker
docker_container:
name: postgres
image: "centos/postgresql-94-centos7"
state: started
recreate: yes
pull: yes
env:
POSTGRESQL_USER: "test"
POSTGRESQL_PASSWORD: "test"
POSTGRESQL_DATABASE: "test"
POSTGRESQL_MAX_CONNECTIONS: 100
POSTGRESQL_SHARED_BUFFERS: 32M
exposed_ports:
- 5432
ports:
- 5432:5432
become: yes
become_method: sudo
当此命令运行时,它会启动容器,但容器会立即退出,并显示一些我看不到的输出,因为 ansible 出于某种原因没有打印出 sys。
以下是容器拒绝启动(由于配置不正确)时打印的一些输出示例:
$ sudo docker run --name postgres -e POSTGRESQL_USER="test" -p 5432:5432 centos/postgresql-94-centos7
You must either specify the following environment variables:
POSTGRESQL_USER (regex: '^[a-zA-Z_][a-zA-Z0-9_]*$')
POSTGRESQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
POSTGRESQL_DATABASE (regex: '^[a-zA-Z_][a-zA-Z0-9_]*$')
Or the following environment variable:
POSTGRESQL_ADMIN_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
Or both.
Optional settings:
POSTGRESQL_MAX_CONNECTIONS (default: 100)
POSTGRESQL_MAX_PREPARED_TRANSACTIONS (default: 0)
POSTGRESQL_SHARED_BUFFERS (default: 32MB)
For more information see /usr/share/container-scripts/postgresql/README.md
within the container or visit https://github.com/openshift/postgresql.
这是我从 ansible 运行它时看不到的输出,它只是说它启动(成功)然后我检查 docker ps 并且它没有启动,因为大概它立即退出了。更奇怪的是,我可以使用传递给 ansible 命令模块的相同配置使其正常工作,但是使用 docker_container 可能它没有正确传递 env?我真的不确定,因为我什至无法得到错误输出。
【问题讨论】: