MSA 세팅 시작 [3] Gateway 설정

최준호·2022년 3월 26일
0

jayeon-msa

목록 보기
4/8
post-thumbnail

🐋🤵‍♂️✅ 한번에 끝내기

FROM openjdk:11-ea-27-jdk-slim

VOLUME /tmp

# jar파일 복사
COPY build/libs/gateway-1.0.jar gateway.jar
ENTRYPOINT ["java","-jar","gateway.jar"]

파일 만들고

docker build -t ililil9482/gateway:1.0 .

images 만들어보고 정상실행된다면 바로 git push 후 젠킨스 작업 가자!

반복된 작업이였어서 따로 설명없이 바로 진행한다!

version: '3.7'
  
services:
    gateway:
        image: "ililil9482/gateway:1.0"
        container_name: gateway
        expose: 
            - "8000"
        environment:
            - spring.cloud.config.uri=http://config:8888
            
networks:
    default:
        external:
            name: msa

docker-compose.yml 파일도 만들어두자!

pipeline {
    agent any

    stages {
        stage('Clone') {
            steps {
                git branch: 'main', credentialsId: '8e8302f1-6b98-4bfe-9981-2e027e49089b', url: 'https://github.com/juno-choi/jayeon-gateway.git'
            }
        }
        stage('Clean') {
            steps {
                sh 'cd /var/jenkins_home/workspace/gateway'
                sh 'chmod +x gradlew'
                sh './gradlew clean'
            }
        }
        stage('Build') {
            steps {
                sh './gradlew build'
            }
        }
        stage('HUB Push') {
            steps {
                sh 'docker build -t ililil9482/gateway:1.0 .'
                sh 'docker push ililil9482/gateway:1.0'
            }
        }
        stage('Down') {
            steps {
sshPublisher(publishers: [
  sshPublisherDesc(configName: 'publisher',
  transfers: [
    sshTransfer(cleanRemote: false,
    excludes: '',
    execCommand: 'cd /msa/gateway && sudo docker-compose down',
    execTimeout: 120000,
    flatten: false,
    makeEmptyDirs: false,
    noDefaultExcludes: false,
    patternSeparator: '[, ]+',
    remoteDirectory: '',
    remoteDirectorySDF: false,
    removePrefix: '',
    sourceFiles: '')
  ],
  usePromotionTimestamp: false,
  useWorkspaceInPromotion: false,
  verbose: false)
])
            }
        }
        stage('Up') {
            steps {
sshPublisher(publishers: [
  sshPublisherDesc(configName: 'publisher',
  transfers: [
    sshTransfer(cleanRemote: false,
    excludes: '',
    execCommand: 'cd /msa/gateway && sudo docker-compose up -d',
    execTimeout: 120000,
    flatten: false,
    makeEmptyDirs: false,
    noDefaultExcludes: false,
    patternSeparator: '[, ]+',
    remoteDirectory: '',
    remoteDirectorySDF: false,
    removePrefix: '',
    sourceFiles: '')
  ],
  usePromotionTimestamp: false,
  useWorkspaceInPromotion: false,
  verbose: false)
])
            }
        }
    }
}

젠킨스 파이프라인도 바로 작성한다.

바로 컨테이너가 실행되었다. 이제 마지막으로 nginx 설정을 변경하자

여기서 하나의 실수가 발생하는데 gateway의 환경변수 설정을 하나 빼먹었다. eureka 주소를 찾아갈 수 있게 변경해주어야한다.
eureka.client.serviceUrl.defaultZone=http://eureka:8761/eureka/ 해당 설정을 빼먹었어서 위 내용은 변경해두었다.

하지만 하나 더 간과한게 있었다. 우리는 spring config 서버에 모든 세팅을 해두었기 때문에 가장 최후에 읽히는 config 설정을 따라간다. config 서버의 세팅을 변경해야 정상작동한다. 혹은 config 서버의 세팅에서 해당 세팅을 빼줘야한다! 나는 config 서버의 세팅 내용을 변경하는 방법으로 수정했다.

드디어 유레카에서 gateway를 만날 수 있게 되었다!

profile
코딩을 깔끔하게 하고 싶어하는 초보 개발자 (편하게 글을 쓰기위해 반말체를 사용하고 있습니다! 양해 부탁드려요!) 현재 KakaoVX 근무중입니다!

0개의 댓글