기본 콘텐츠로 건너뛰기

라벨이 Docker인 게시물 표시

[Travis CI] docker image 빌드하여 dockerhub에 푸시작업 자동화하기

1. 프로젝트 루트폴더에 .travis.yml 파일을 생성한다. 2. .travis.yml 파일을 다음과 같이 작성한다. 로그인 echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin   현재 경로에 있는 DOCKERFILE build & push docker build --tag kimwithglasses/safe-place-db:0.0.1 . && docker push kimwithglasses/safe-place-db 경로 이동하여 gradle project build & push cd SafePlaceAPI && ./gradlew bootJar && docker build --tag kimwithglasses/safe-place-api:0.0.1 .  && docker push kimwithglasses/safe-place-api 3. 위의 경우는 password가 노출되어있기 때문에 암호화를 진행한다. .travis.yml이 있는 경로로 이동 DOCKER_PASS 변수 암호화 travis encrypt DOCKER_PASS=" password " --add --com 4. 최종 완성된 .travis.yml 파일의 모습은 다음과같다.

[Docker] docker--compose.yml을 정의하여 Spring boot app 과 MySQL 앱 동시에 실행할때 Connection Link Failure 에러 해결하기

 내가 정의한 커스텀 MySql 이미지와 Spring Boot 서버를 docker-compose를 실행하는데 Connection Link Failure에러가 자꾸 났다. 원인은 의외의 곳에 있었다.  커스텀 MySql 이미지가 다 실행되기도 전에 Spring Boot 서버가 실행되었기 때문이다. 사실 depends_on: - safe-place-db   구문이 실행되면 실행의 순서가 보장되리라고 생각했는데, 실제로는 safe-place-db가 up 될때까지 보장해주는 것이었다. up이 된 순간 부터는 두가지 컨테이너가 동시에 실행되는 것이다. 따라서 docker-compose.yml에    restart: on-failure:10  을 추가하여 수정했다. 추가한 구문은 실패할때 10번까지 재실행을 허용하라는 의미이다. 보통 safe-place-db에서 sql 스크립트에대한 실행이 없을때는 depends on 구문으로 충돌이 나는 경우는 없지만 이번 경우는 달랐다. 완성된 docker-compose.yml 은 다음과 같다.

[Docker] 자주 사용하는 커멘드

docker-compose up : Builds, (re)creates, starts, and attaches to containers for a service -d, --detach : Detached Mode, Run container in background. docker rmi <your-image-id> : delete image with id docker images : list docker images docker build --tag <tag-name> .  : build docker image in current directory with tag name docker tag bb38976d03cf yourhubusername/verse_gapminder:firsttry : tag already created image  docker push yourhubusername/verse_gapminder : push image to docker hub repo