我正在尝试使用构建并运行两个托管PostgreSQL和Citus扩展的Docker容器ansible-container。我知道Citus提供了容器,但是我想构建自己的容器。
我的container.yaml样子如下:
version: '2'
services:
database_master:
image: hackermd/ubuntu-trusty-python
user: postgres
expose:
- 5043
entrypoint: ['dumb-init', '--']
command: ['/usr/bin/pg_ctlcluster', '9.6', 'master', 'start']
links:
- database_worker
depends_on:
- database_worker
database_worker:
image: hackermd/ubuntu-trusty-python
user: postgres
expose:
- 9700
entrypoint: ['dumb-init', '--']
command: ['/usr/bin/pg_ctlcluster', '9.6', 'worker', 'start']
Run Code Online (Sandbox Code Playgroud)
在构建过程中,我可以通过启动和停止集群,pg_ctlcluster并成功完成。但是,当我随后运行容器时,出现以下错误:
$ docker logs ansible_database_master_1
Removed stale pid file.
Warning: connection to the database failed, disabling startup checks:
psql: FATAL: the database system is starting up
Run Code Online (Sandbox Code Playgroud)
使用容器构建容器command: []并ps …
我正在尝试使用 ansible-container 创建和部署我的 docker 应用程序,但我无法让它工作。
我有一个远程服务器,我可以通过 ansible 进行配置。在我的本地机器上,我使用 ansible-container 来构建一个运行良好的 docker 镜像。运行后ansible-container build,我的本地机器上有 docker 映像。但是,我没有下一步工作。我的目标是将 docker 镜像从我的本地机器推送到远程服务器,然后在远程服务器上基于这个镜像创建并启动一个 docker 容器。
我没有使用 docker 注册表。因此,我正在使用命令--local-images选项,ansible-container deploy以防止它将图像推送到注册表(至少这是我从文档中了解到的)。这个命令成功创建了一个 ansible playbook,但是当我执行这个 playbook 时,它仍然尝试从 docker.io 注册表中提取图像,当然在那里找不到它。
我认为缺少的步骤是将本地 docker 映像推送到远程服务器,但我在 ansible-container 文档中找不到此用例的任何提示。我还查看了ansible docker_image 模块,但据我所知,这也以使用注册表为中心。
如何使用 ansible 将 docker 映像部署到远程服务器?