[我有一个通过gitlab CI / CD在远程计算机上启动的docker-compose堆栈(运行程序连接到远程计算机上的docker引擎并使用docker-compose up -d
执行部署)。
[当我使用eval docker-machine env REMOTE_ADDRESS
从笔记本电脑连接到该计算机时,我可以看到docker进程正在运行(docker ps
),而服务堆栈似乎是空的[docker-compose ps
)。
我无法使用docker-compose down
停止堆栈,而尝试docker-compose up -d
会给我错误
ERROR: for feamp_postgres Cannot create container for service postgres: Conflict. The container name "/feamp_postgres" is already in use by container "40586885...". You have to remove (or rename) that container to be able to reuse that name.
反之亦然,我可以从本地笔记本电脑(使用docker-machine)启动堆栈,但是当尝试执行具有相同错误的docker-compose up -d
时,CI / CD管道失败。
[这是在便携式计算机(OSX)和运行程序(ubuntu 18.04)上使用最新版本的docker和docker-compose发生的。
在其他情况下(〜10个其他项目),此操作很顺利。
这是我正在使用的docker-compose.yml
文件。
version: "3.7"
services:
web:
container_name: feamp_web
restart: always
image: guglielmo/fpa/feamp:latest
expose:
- "8000"
links:
- postgres:postgres
- redis:redis
environment:
- ...
volumes:
- public:/app/public
- data:/app/data
- uwsgi_spooler:/var/lib/uwsgi
- weblogs:/var/log
command: /usr/local/bin/uwsgi --socket=:8000 ...
nginx:
container_name: feamp_nginx
restart: always
...
postgres:
container_name: feamp_postgres
restart: always
image: postgres:11-alpine
...
redis:
container_name: feamp_redis
restart: always
image: redis:latest
...
volumes:
...
networks:
default:
external:
name: webproxy
通常,我可以从本地笔记本电脑和从gitlab的CI / CD管道上来堆栈。
docker rm -f 40586885
docker network rm webproxy