2016-03-01 3 views
0

Проблема, с которой я столкнулся Wercker - то, что конкретный linked services в моем wercker.yml не связан с моим основным контейнером докера.Услуги Wercker не связаны с главным контейнером

Я заметил эту проблему, когда мое приложение-узел не было запущено на порт 3001 после успешного завершения Wercker, в котором его вывод можно увидеть на изображении ниже.

enter image description here

Поэтому я SSH'd в моем сервере и в мой Docker контейнер, который был запущен после Wercker развертывания с помощью:

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

и нашел следующую MongoDB ошибку в моем PM2 бревна:

[MongoError: connect EHOSTUNREACH 172.17.0.7:27017 

Странный фасад т в том, что из изображений ниже вы можете увидеть, что обе переменные окружения, которые мне нужно от каждой соответствующей службы были установлены:

enter image description here

enter image description here

Кто-нибудь знает, почему контейнеры услуги не могут быть доступны из моего основного контейнера даже думал, что их переменные среды установлены?

Следующее является файлом 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 [email protected] docker pull /:latest 
    - script: 
     name: stop running container 
     code: ssh [email protected] docker stop || echo ‘failed to stop running container’ 
    - script: 
     name: remove stopped container 
     code: ssh [email protected] docker rm || echo ‘failed to remove stopped container’ 
    - script: 
     name: remove image behind stopped container 
     code: ssh [email protected] docker rmi /:current || echo ‘failed to remove image behind stopped container’ 
    - script: 
     name: tag newly pulled image 
     code: ssh [email protected] docker tag /:latest /:current 
    - script: 
     name: run new container 
     code: ssh [email protected] docker run -d -p 8080:3001 --name /:current 
    - script: 
     name: env 
     code: env 

ответ

1

Услуги AFAIK the Wercker доступны только в процессе сборки, а не в развертывании. Mongo и Redis сохраняют хранилища данных - это означает, что они не должны переустанавливаться при каждом развертывании.
Поэтому убедитесь, что вы вручную настроили Redis и Mongo в своей среде развертывания.

+0

Спасибо. Я закончил тем, что сделал именно это, и он отлично работал. –