У меня проблемы с подключением к контейнеру Docker внутри задания / работника Travis CI.
Я использую REST API в контейнере Docker с открытым портом 8080. Я могу убедиться, что контейнер запускается без сбоев и что контейнер работает с 0.0.0.0:8080.
Во время выполнения сценария я запускаю тест почтальона / новичка и получаю socket hang up
или read ECONNRESET
всякий раз, когда запускаю тест. Я попробовал каждую комбинацию localhost, 127.0.0.1, 0.0.0.0 на конечных точках, и все не удалось.
При использовании curl я также получаю сообщение об ошибке соединения при попытке доступа к этим конечным точкам curl: (56) Recv failure: Connection reset by peer
.
Не доступны ли порты контейнера в задании / работнике?
докер-compose.yml
version: "2"
services:
db:
container_name: api-db
image: mysql:5.7.22
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: api_db
MYSQL_USER: devadmin
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql
ports:
- 3366:3306/tcp
networks:
- web
rest-api:
container_name: rest-api
build: .
depends_on:
- db
command: "python manage.py runserver 0.0.0.0:8000"
privileged: true
restart: always
ports:
- 8080:8000/tcp
networks:
- web
links:
- db:mysql
volumes:
- ../../app:/app
networks:
web:
driver: bridge
volumes:
db_data:
driver: local
.travis.yml
language: node_js
node_js:
- "8.2.1"
services:
- docker
before_install:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
install:
- docker-compose -f docker/dev/docker-compose.yml up -d
- npm install newman
before_script:
- node --version
- npm --version
- node_modules/.bin/newman --version
- docker ps
script:
- curl localhost:8080/testendpoint/
- node_modules/.bin/newman run tests/postman/API.postman_collection.json -e tests/postman/Testing.postman_environment.json