728x90
Dockerfile
해당 프로젝트에 도커 파일이 존재해야 합니다.
FROM gradle:7.4-jdk11-alpine as builder
WORKDIR /build
# 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함.
COPY build.gradle settings.gradle /build/
RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true
# 빌더 이미지에서 애플리케이션 빌드
COPY . /build
RUN gradle build -x test --parallel
# APP
FROM openjdk:11.0-slim
WORKDIR /app
# 빌더 이미지에서 jar 파일만 복사
COPY --from=builder /build/build/libs/*-SNAPSHOT.jar ./app.jar
EXPOSE 8080
# root 대신 nobody 권한으로 실행
USER nobody
ENTRYPOINT [ \
"java", \
"-jar", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dsun.net.inetaddr.ttl=0", \
"app.jar" \
]
CI/CD Editor
gitlab의 CI/CD -> Editor로 들어갑니다.
Configure pipeline을 클릭합니다.
자동으로 작성되어진 내용을 삭제하고 다음 코드를 작성합니다.
stages:
- dockerbuild-push
package:
image: docker:latest
stage: dockerbuild-push
services:
- docker:dind
before_script:
- docker login registry.gitlab.com -u $GITLAB_USER -p $GITLAB_PASSWORD
script:
- docker build -t registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME .
- docker push registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME
after_script:
- docker logout
커밋합니다.
변수 값들을 지정하지 않아 해당 파이프라인은 failed가 뜹니다.
Variables 등록
.gitlab-ci.yml, 위에 작성한 코드 내용 중 $GITLAB_USER와 같이 변수 값을 입력한 값들이 있습니다.
해당 변수에 값을 넣어줘야합니다.
Settings의 CI/CD로 이동합니다.
목록 중 Variables의 우측에 있는 Expand를 눌러 확장시킵니다.
Expand 후 하단의 Add variable을 클릭하여 변수의 Key와 Value를 작성합니다.
Run pipelines
다시 파이프라인으로 들어가서
Run pipeline을 진행합니다.
변수들은 Setting의 CI/CD에서 입력했으므로 빈칸이어도 상관없습니다.
반응형
'Server > Infra' 카테고리의 다른 글
[AWS] EC2 접속하기 (0) | 2022.12.20 |
---|---|
[AWS] AWS EC2 Free tier 생성 (0) | 2022.12.20 |
[Docker] 우분투, 도커로 메이븐 프로젝트 빌드하기(Maven Project Build) (0) | 2022.11.15 |
[Docker] 우분투, 도커로 그래들 프로젝트 빌드하기(Gradle Project Build) (0) | 2022.11.15 |
[Docker] 도커(Docker) nginx 연동 (0) | 2022.11.14 |