inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

비전공자도 이해할 수 있는 CI/CD 입문·실전

[실습] 컨테이너 기반의 프로젝트에서 많이 쓰는 CI/CD 구축 방법

환경변수 질문 있습니다

201

kyb1208tg

작성한 질문수 21

0

저는 application.yml을 통째로 git secret에 작성하지 않고 다음과 같이 각각을 환경변수로 잡아서 민감한 정보를 숨겼습니다. 그리고 build step 에서 env를 통해 환경변수 값들을 전달해서 사용하려 하였는데, 실제 docker를 통해 실행할 때 해당 환경변수 값들을 찾을수 없다는 에러가 발생하는 상황입니다.

저는 build 단계에서 해당 환경변수 값들이 모두 들어간 상태의 완전한 상태로 build가 된다고 생각했지만 실제로는 해당 환경변수들을 일단 빈값으로 놔두고 build하기 때문이라고 알게되었는데 저의 이러한 방식보다는 그냥 application.yml을 통째로 git secret에 넣는 방식이 좋은걸까요..?

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: {SQL_URL}
    username: {SQL_USERNAME}
    password: {SQL_PASSWORD}
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true

  data:
    redis:
      host: {REDIS_HOST:localhost}
      port: ${REDIS_PORT:6379}
name : Deploy To EC2

on:
    push:
        branches:
        - main
        - feat/ci_cd
jobs:
    deploy:
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
          uses: actions/checkout@v4

        - name: JDK 17 version install
          uses: actions/setup-java@v4
          with:
            distribution: temurin
            java-version: 17

        - name: test and build
          run: |
            chmod +x ./gradlew
            ./gradlew clean build
          working-directory: ./
          env:
            SQL_URL: {{ secrets.DB_URL }}
            SQL_USERNAME: {{ secrets.DB_USERNAME }}
            SQL_PASSWORD: {{ secrets.DB_PASSWORD }}
            REDIS_HOST: {{ secrets.REDIS_HOST }}
            REDIS_PORT: {{ secrets.REDIS_PORT }}
            AWS_ACCESS_KEY: {{ secrets.AWS_ACCESS_KEY }}
            AWS_REGION: {{ secrets.AWS_REGION }}
            AWS_S3_BUCKET: {{ secrets.AWS_S3_BUCKET }}
            AWS_SECRET_KEY: {{ secrets.AWS_SECRET_KEY }}
            TOUR_INFO_KEY: {{ secrets.TOUR_INFO_KEY }}

        - name: AWS credential setup
          uses: aws-actions/configure-aws-credentials@v4
          with:
            aws-region: {{ secrets.AWS_REGION }}
            aws-access-key-id: {{ secrets.AWS_ACCESS_KEY }}
            aws-secret-access-key: {{ secrets.AWS_SECRET_KEY }}

        - name: ECR login
          id: login-ecr
          uses: aws-actions/amazon-ecr-login@v2

        - name: Docker image create
          run: docker build -t kkilogbu .

        - name: Docker tag
          run: docker tag kkilogbu {{ steps.login-ecr.outputs.registry }}/backend:latest

        - name: Docker image push to ECR
          run: docker push {{ steps.login-ecr.outputs.registry }}/backend:latest

        - name: EC2 connection with SSH
          uses: appleboy/ssh-action@v1.0.3
          with:
            host: {{ secrets.EC2_HOST }}
            username: {{ secrets.EC2_USERNAME }}
            key: {{ secrets.EC2_PRIVATE_KEY }}
            script: |
              docker stop kkilogbu || true
              docker rm kkilogbu || true
              docker pull {{ steps.login-ecr.outputs.registry }}/backend:latest
              docker run -d --name kkilogbu -p 8080:8080 ${{ steps.login-ecr.outputs.registry }}/backend:latest

aws docker ci/cd github-actions aws-code-deploy infrastructure aws-ec2

답변 1

0

JSCODE 박재성

안녕하세요 kyb1208tg님!

강의 내용을 기반으로 응용해보셨군요👍

 

현재 환경변수가 제대로 작동하지 않는 이유가 문법 때문일 수도 있을 것 같아서

아래 사항 한 번 체크해보시겠어요 ?

 

application.yml에 보시면 ${ ____ }의 형태로 작성하지 않고 { _____ }의 형태로

작성되어 있는 코드가 다수 보입니다.

이 파일에서 $ { ______ }의 형태로 작성을 해도 에러가 발생하는 지 확인 해주실 수 있을까요~??

 

무중단 배포

0

57

2

workflows/deploy.yml 궁금증

0

52

2

.git-credentials 파일이 없이 배포가 성공한 이유가 궁금

0

57

1

(해결 - 정보공유) /home/runner/work/_temp/6be6e~0.sh: line 1: ./gradlew: Permission denied 오류

1

63

2

(확인 완료) git config --global creadential.helper store 후에도 비밀번호 물어보는 현상

1

71

2

질문_ 강의 순서 및 그외

0

70

2

섹션 4 - Docker + 백엔드(Spring Boot)

0

63

2

deploy.yml작성후 원격에 push불가

0

63

2

CodeDeploy 사용시 registration 요구

0

106

3

스프링 종료 명령어

0

68

2

RAM & 스왑메모리 폭증하는 문제

0

102

2

섹션 4, 5와 6, 7은 유사한가요?

0

66

1

code deploy 배포입니다.

0

98

3

사용자 삭제가 안되는 이유

0

88

2

이미지 pull중 no basic auth credentials 문제입니다.

0

113

2

Docker Compose파일을 작성했을때 CI CD와의 연동

0

96

2

보안그룹 생성 오류

0

84

3

AWS 5월에 탈퇴해서 그러는데....

0

81

1

배포 오류

0

80

2

node.js 설치시 에러

0

149

2

appspec.yml, 스크립트 파일 수정요청

0

82

2

appleboy/ssh-action stop_script 대체

1

181

2

Vue.js 파일 배포

0

61

2

aws를완강하고 ci/cd로 넘어왔습니다.

0

85

1