2016-03-01 102 views
0

我遇到的問題Wercker是我的wercker.yml中的具體linked services未鏈接到我的主碼頭容器。Wercker服務未連接到主容器

我注意到這個問題,當我的節點應用程序沒有在端口3001上運行後,成功的Wercker部署在其中它的輸出可以在下圖中看到。

enter image description here

因此,我通過SSH連接到我的服務器和成是在Wercker使用部署運行後我的搬運工容器:

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

,發現我PM2以下MongoDB的錯誤日誌

[MongoError: connect EHOSTUNREACH 172.17.0.7:27017 

奇怪的fac t是從下面的圖片,你可以看到,無論是我從每個相應服務所需要的環境變量都已設置:爲什麼服務容器不能被訪問

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 Wercker服務僅在構建過程中可用,而不是部署過程中可用。 Mongo和Redis是持久的數據存儲 - 意味着它們不應該在每次部署時都重新安裝。
因此,請確保您在部署環境中手動設置Redis和Mongo。

+0

謝謝。我最終做到了這一點,它完美的工作。 –