Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- MySQL
- jenkins jdk
- CI/CD
- jenkins maven
- jenkins 설치
- 리액트
- docker network
- JavaScript
- error
- jpa
- jenkins github
- MongoDB
- spring
- vue.js
- subnetmask
- Jenkins
- grpc
- jenkins install
- Spring Boot
- java
- grafana
- gradle
- REACT
- jenkins github 연동
- IntelliJ
- nginx
- Docker
- Linux
- Jenkins Pipeline
- 리눅스
Archives
- Today
- Total
뭐든 즐기면서 ;)
java Bitbucket 자동 배포 / Bitbucket CD / 빗버킷 자동 배포 / Bitbucket pipelines 이용 본문
서버
java Bitbucket 자동 배포 / Bitbucket CD / 빗버킷 자동 배포 / Bitbucket pipelines 이용
Tada.*+ 2024. 9. 23. 16:25728x90
필자는 Tag push할 때 CD가 발생하도록 설정하였으며, docker를 이용한 배포를 설정함.
파일 경로
저장소 내 파일 경로는 아래와 같음.
/bitbucket-pipelines.yml
/docker-file/path/Dockerfile
bitbucket-pipelines.yml 내용
image: gradle:7.5.0
pipelines:
tags:
'**':
# docker 이미지 build 및 push
- step:
name: Build and Push Docker Image
services:
- docker
script:
# 환경변수 설정
- export TAG=${BITBUCKET_TAG}
- export DOCKER_FILE=./docker_file/path # Dockerfile이 있는 경로
# java 소스 build
- chmod +x gradlew # 실행 권한 부여
- ./gradlew clean generateProto bootJar # Gradle 빌드
- mv ./build/libs/*.jar $DOCKER_FILE # Dockerfile이 있는 경로로 jar파일을 옮김.
# Docker 이미지 빌드
- docker build -t docker-repo/backend/management-system:$TAG $DOCKER_FILE
# Docker 이미지 푸시
- docker push docker-repo/backend/management-system:$TAG
# 아래는 서버 배포
- step:
name: Deploy to Server using Docker Compose
caches:
- docker
script:
- export TAG=${BITBUCKET_TAG} # 태그명 가져오기
- pipe: atlassian/ssh-run:0.4.4
variables:
SSH_USER: 'user_id'
SSH_KEY: $SSH_KEY # Bitbucket 환경변수로 SSH 키 추가
SSH_HOST: 'server-ip-or-hostname'
SCRIPT: |
cd /path/to/your/docker-compose/files # docker-compose.yml이 있는 위치로 이동. docker-compose.yml 내에 이미지 부분은 ${TAG}로 작성해 주어야 함.
docker-compose pull # 레지스트리에서 도커 이미지 pull
docker-compose up -d # 새로운 컨테이너 띄우기
Dockerfile 내용
# 베이스 이미지 설정
FROM openjdk:11-jre-slim
WORKDIR /
# JAR 파일을 컨테이너 내부로 복사
COPY *.jar /backend/api.jar
EXPOSE 9201
ENV TZ=Asia/Seoul
# 컨테이너 실행 시 JAR 파일 실행
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "/backend/api.jar"]
728x90
'서버' 카테고리의 다른 글
NginX Stream 설정 (0) | 2024.02.14 |
---|---|
하드디스크 구성 요소 (초간단) (0) | 2024.01.17 |
alternatives 사용법 (0) | 2023.11.17 |
NginX permission denied (0) | 2023.09.12 |
JMeter 사용방법 (0) | 2023.08.30 |
Comments