반응형 기타80 [Infra] 7. Blue-Green 무중단 배포(1) - Voda Project Java (Vue, Python 동일) # jenkins 파이프라인에서 ./deploy.sh 실행 stage('Run docker front image') { steps { dir('/var/jenkins_home/workspace/deploy_test/back_java'){ sh 'chmod +x deploy.sh' sh './deploy.sh' } } } 배포 작업은 깃랩에서 푸쉬된 프로젝트 파일들을 voda_back_build_test에서 빌드를 완료한다. 이후 deploy_test 파이프라인에서 해당 빌드된 파일들을 가지고 배포를 진행한다. java : voda-0.0.1-SNAPSHOT.jar (빌드 파일) vue : dist(빌드폴더) | 파일 구조 root@ip-172-26-9-157:/ho.. 기타/인프라 구축과정 2023. 4. 4. [Infra] 6. 컨테이너 구동 - Voda Project JAVA + VUE pipeline{ environment { dockerImage = '' } agent any stages{ stage('Building front image') { steps { script { dockerImage = docker.build("bae3007/frontvoda-zero-downtime", "/var/jenkins_home/workspace/deploy_test/front_vue") withCredentials([usernamePassword(credentialsId: 'bae3007', usernameVariable: 'DOCKER_HUB_USERNAME', passwordVariable: 'DOCKER_HUB_PASSWORD')]) { sh 'docker login.. 기타/인프라 구축과정 2023. 4. 4. [Infra] 5. Jenkins 프로젝트 빌드 - Voda Project Jenkins → voda_back_build_test → 구성 → Build Steps JAVA | /home/ubuntu/jenkins_home/workspace/voda_back_build_test/backend/java cd /var/jenkins_home/workspace/voda_back_build_test cp /var/jenkins_home/workspace/yml/application-db.yml backend/java/src/main/resources/ cp /var/jenkins_home/workspace/yml/application-oauth.yml backend/java/src/main/resources/ cd /var/jenkins_home/workspace/voda_back_b.. 기타/인프라 구축과정 2023. 4. 4. [Infra] 4. MariaDB 설정 - Voda Project MariaDB 설정 /home/ubuntu/mariadb/docker-compose.yml version: '3.7' services: db: container_name: mariadb image: mariadb restart: always environment: MARIADB_ROOT_PASSWORD: *** ports: - 3307:3306 volumes: - /data/mariadb/data:/var/lib/mysql 이 파일은 Docker Compose 설정 파일이다. 이 파일은 'db'라는 이름의 MariaDB 데이터베이스를 실행하는 서비스를 정의한다. container_name 지시어를 사용하여 컨테이너의 이름을 "mariadb"로 지정. image 지시어를 사용하여 컨테이너에 사용할 Dock.. 기타/인프라 구축과정 2023. 4. 4. [Infra] 3. https 설정 (Cerbot) - Voda Project Nginx 설치 sudo apt-get install nginx 상태 확인 : sudo service nginx status 시작 : sudo service nginx start 재시작 : sudo service nginx restart 중지 : sudo service nginx stop 설정 리로드 : sudo service nginx reload Certbot Certbot은 Let's Encrypt 인증서를 쉽게 발급하고 갱신할 수 있도록 도와주는 도구라고 한다. Let's Encrypt는 무료로 SSL/TLS 인증서를 발급해주는 인증 기관으로, HTTPS를 사용하는 웹사이트에서 보안 통신을 위해 사용된다. Certbot을 이용하면 명령어를 통해 인증서를 발급하고 갱신할 수 있으며, 이를 통해 HT.. 기타/인프라 구축과정 2023. 4. 4. [Infra] 2. 젠킨스 설정 - Voda Project 젠킨스 컨테이너를 구동시켜 깃랩의 프로젝트가 병합될 때 자동으로 빌드 과정을 거친다. | /home/ubuntu/Dockerfile FROM jenkins/jenkins:lts USER root RUN apt-get update && \ apt-get -y install apt-transport-https \ ca-certificates \ curl \ gnupg2 \ zip \ unzip \ software-properties-common && \ . /etc/os-release && \ curl -fsSL https://download.docker.com/linux/${ID}/gpg > /tmp/dkey; apt-key add /tmp/dkey && \ add-apt-repository \ "deb .. 기타/인프라 구축과정 2023. 4. 4. [Infra] 1. 서버 환경세팅 - Voda Project 프로젝트를 진행하면서 Infra를 담당하게 되었다. 지금껏 백엔드 개발자로서 API 설계를 바탕으로 추가적인 기능을 구현하는 역할을 맡았다. 하지만 프론트와 데이터를 주고 받을 때 어떻게 흘러가는가. 어떠한 포트로 데이터가 오고 가는지 흐름을 이해하는 것은 상당히 중요하다고 느꼈다. 그래서 이번 프로젝트에서는 Infra에 도전하여 데이터의 흐름을 이해하고 CI/CD를 구축 및 설계를 진행하기로 하였다. 해당 프로젝트에서는 Ubuntu 환경에서 도커 가상환경을 사용하여 Python, SpringBoot, Vue, MaraiDB, Jenkins 컨테이너를 띄우고 통신한다. | 해당 명령어는 먼저 패키지 관리자를 업데이트한다. 그리고 다음과 같은 패키지들을 설치한다. $ sudo apt update $ sud.. 기타/인프라 구축과정 2023. 4. 4. [Problem] SpringBoot com.fasterxml.jackson.databind.exc.InvalidDefinitionException //Post Method Object Mapping @PostMapping("/postMappingObjectTest") public SampleDto postMappingObjectTest(@RequestBody SampleDto sampleDto){ return sampleDto; } sampleDto 라는 클래스를 생성했을 때 @RequsetBody 어노테이션으로 바로 맵핑 시킬려고 했지만 개체 값에서 역직렬화를 할 수 없다는 오류를 만났다. 해결 방법은 아래와 같다. This error message is indicating that the Jackson library, which is used for serializing and deserializing Java objects to and fro.. 기타/오류 2023. 1. 15. [Problem] InteliJ 테스트창 한글 깨짐 Help -> Edit Custom Vm Options -Dfile.encoding=UTF-8 추가 인텔리제이 재시작 기타/오류 2023. 1. 12. [Problem] org.hibernate.id.IdentifierGenerationException javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.example.demo.dto.Member at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) at org.hibernate.internal.Exceptio.. 기타/오류 2023. 1. 7. 이전 1 2 3 4 5 6 ··· 8 다음 반응형