【发布时间】:2019-07-30 21:30:37
【问题描述】:
我是 ansible 的新手,正在尝试将我的 docker-compose 文件转换为 ansible.yml。
如https://codebabel.com/ci-gitlabci-docker/ 中所述,我将一个虚拟烧瓶应用程序的 docker 映像放入我的 gitlab 存储库中。
我写了一个 docker-decompose.yaml 来运行上面的图像和弹性搜索,它工作正常。
# Run both the app and Elasticsearch inside Docker containers.
version: '3'
services:
app:
image: registry.gitlab.com/bacdef/flaskapp:latest
restart: on-failure
ports:
- 5000:5000
depends_on:
- elasticsearch
links:
- elasticsearch
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
container_name: es01
environment:
- node.name=es01
- cluster.initial_master_nodes=es01
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
volumes:
esdata01:
driver: local
networks:
esnet:
然后我尝试将相同的 docker-compose.yml 转换为 ansible.yml 如下
---
- hosts: localhost
tasks:
- name: "Elasticsearch"
docker_container:
name: "es01"
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
ports:
- "9200:9200"
volumes:
- "sdata01:/usr/share/elasticsearch/data"
env:
node.name: es01
cluster.initial_master_nodes: es01
cluster.name: docker-cluster
bootstrap.memory_lock: "true"
- name: "Launch app container"
docker_container:
name: "app"
image: registry.gitlab.com/bacdef/flaskapp:latest
ports:
- "5000:5000"
当我运行上面的 ansible 文件时它失败了
播放 [本地主机]
TASK [收集事实] ****************************************************** ******* 好的:[本地主机]
任务 [弹性搜索] ****************************************************** ********* 更改:[本地主机]
TASK [启动应用容器] ****************************************************** ** 致命:[本地主机]:失败! => {"changed": false, "msg": "错误启动 容器 380e56eb2d9579d407727b031713b056efda14f1a73fd9c88f65349567caa9f9:500 服务器错误:内部服务器错误(\“驱动程序编程失败 端点应用程序上的外部连接 (2020132c9cb503817740c063b1d231e3bb72e56d91a0386edd0cc6d23def992f): 绑定 0.0.0.0:5000 失败:端口已分配\")"}
播放回顾 ****************************************************** ******************* 本地主机:好的=2 更改=1 无法访问=0
失败=1 跳过=0 救出=0 忽略=0
但我确信除了这个 docker 映像之外,没有其他进程正在使用端口 5000。我运行losof -i:5000 并在运行ansible-playbook ansible.yml 之前终止了正在此端口上运行的进程
我找不到进程无法绑定到 5000 的原因。
有人可以分享一些高级建议
【问题讨论】:
标签: docker docker-compose ansible