Docker Executor 내에 구축된 Docker 컨테이너에 웹 액세스하는 방법
간결하게 문제 해결만 기재하겠습니다.
전체의 흐름이 알고 싶은 분은 아래의 기사를 봐 주세요.
Docker in Docker를 이용하여 CI를 구축해 보았습니다.
하고 싶은 일
Docker Executor 내에 구축한 Docker 컨테이너에 curl 명령을 사용하여 액세스하고 응답이 반환되는지 테스트합니다.
용도는 CI 환경을 Docker를 이용해 구축하고, 웹 앱도 Docker 컨테이너로서 작성하고 싶은 경우를 생각할 수 있습니다.

빠진 것
IP 주소를 동적으로 검색하여 액세스를 시도했지만 실패했습니다.
IP 주소가 검색되었음에도 불구하고 Timeout 오류가 발생합니다.
$ export CONTAINER_ADDRESS=$(docker inspect -f "{{.NetworkSettings.IPAddress}}"
${CONTAINER_NAME})
$ echo ${CONTAINER_ADDRESS}
172.18.0.2
$ curl http://${CONTAINER_ADDRESS}:80/${APP_NAME}/hello
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:31 --:--:-- 0
curl: (28) Failed to connect to 172.18.0.2 port 80: Operation timed out
해결책
GitLabCI에서는 services에서 정의한 컨테이너에 액세스할 때 정의했을 때의 이름을 사용해야 합니다.
이번에는 .gitlab-ci.yml 파일에서
services:
- docker:dind
정의했기 때문에 docker를 호스트 이름으로 지정합니다.
$ curl docker:80/${APP_NAME}/hello
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13 100 13 0 0 55 0 --:--:-- --:--:-- --:--:-- 55
Hello, World!
참고 URL
Accessing the services
Docker Container Networking with Docker-in-Docker
Reference
이 문제에 관하여(Docker Executor 내에 구축된 Docker 컨테이너에 웹 액세스하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zousan010sanpotyu/items/1b82a87f2c63aa8277db텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)