공부/Git
[Gitlab] gitlab cicd 사용해 docker image 배포
작은소행성
2021. 11. 3. 14:22
gitlab cicd 를 이용해 프로젝트를 배포하려고 한다.
먼저 gitlab runner를 만들어주고
2021.11.02 - [공부/Git] - [Gitlab] gitlab runner 생성하기
gitlab 프로젝트에 Dockerfile 과 .gitlab-ci.yml 파일 두개를 만들어 준다.
현재 프로젝트는
spring + gradle + jar 로 배포할 것이다.
Dockerfile 에는 이미지 기본 환경을 세팅해준다.
FROM payneteasy/jdk-8
COPY ${JAR_FILE} app.jar
ENV JAVA_OPTS=""
ENV DOCKER_OPTS="--insecure-registry <IP>:35000"
ENTRYPOINT ["java","-jar","/app.jar"]
FROM 에 사용된 payneteasy/jdk-8 이미지는
도커에서 docker searc jdk 로 필요한 jdk 환경을 선택해주었다.
gitlab-ci.yml
variables:
IMAGE_NAME: <IP>:35000/<NAME>/<PROJECT_NAME>:$CI_PIPELINE_ID
# DOCKER_HOST: "tcp://172.17.0.1:2375"
before_script:
- export
stages:
# - test
- build
- deploy
build:
stage: package
image: docker:latest
services:
- docker:dind
stage: build
script:
# - ls -al
- docker login -u <ID> -p <PASSWORD> <IP>:35000
- docker build --tag $IMAGE_NAME .
- docker push $IMAGE_NAME
deploy:
stage: deploy
image: docker:latest
services:
- docker:dind
script:
# - docker container ls -a
- ID=$(docker ps -a --filter="name=build-$CI_PROJECT_NAME" -q) && [[ -n $ID ]] && docker stop $ID && docker rm $ID
- docker images && docker rmi
- docker run -itd --name build-$CI_PROJECT_NAME -p 35100:9009 $IMAGE_NAME
environment:
name: build
url: http://192.168.10.52:35100
only:
- master
반응형