威克服务不与主集装箱挂钩

我与Wercker遇到的问题是,我的wercker.yml中的特定链接服务没有链接到我的主docker容器。

我注意到这个问题,当我的节点应用程序没有在端口3001上运行,在一个成功的Wercker部署之后,它的输出可以在下面的图像中看到。

在这里输入图像说明

因此,我SSH到我的服务器,并进入我的docker容器,在Wercker部署后运行使用:

docker exec -i -t <my-container-name> ./bin/bash 

并在我的PM2日志中发现了以下 MongoDB错误:

 [MongoError: connect EHOSTUNREACH 172.17.0.7:27017 

奇怪的事实是,从下面的图像中可以看到,我所需要的每个服务的环境variables都已经设置好了:

在这里输入图像说明

在这里输入图像说明

有谁知道为什么服务容器不能从我的主容器访问,即使他们的环境variables已经设置?

以下是我正在使用的wercker.yml文件。

 box: node services: - id: mongo - id: redis build: steps: - npm-install deploy: steps: - npm-install - script: name: install pm2 code: npm install pm2 -g - internal/docker-push: username: $DOCKER_USERNAME password: $DOCKER_PASSWORD repository: / ports: "3001" cmd: /bin/bash -c "cd /pipeline/source && pm2 start processes_prod.json --no-daemon" env: "MONGO_PORT_27017_TCP_ADDR"=$MONGO_PORT_27017_TCP_ADDR,"REDIS_PORT_6379_TCP_ADDR"=$REDIS_PORT_6379_TCP_ADDR - add-ssh-key: keyname: DIGITAL_OCEAN_KEY - add-to-known_hosts: hostname: - script: name: pull latest image code: ssh root@ docker pull /:latest - script: name: stop running container code: ssh root@ docker stop || echo 'failed to stop running container' - script: name: remove stopped container code: ssh root@ docker rm || echo 'failed to remove stopped container' - script: name: remove image behind stopped container code: ssh root@ docker rmi /:current || echo 'failed to remove image behind stopped container' - script: name: tag newly pulled image code: ssh root@ docker tag /:latest /:current - script: name: run new container code: ssh root@ docker run -d -p 8080:3001 --name /:current - script: name: env code: env 

AFAIK Wercker服务仅在构build过程中可用,而不是部署。 Mongo和Redis是持久的数据存储 – 意味着它们不应该在每次部署时重新安装。
因此,请确保在部署环境中手动设置Redis和Mongo。