GitHub-Actions 스크립트 파일 생성 -> GitHub-actions.yml 코드 작성
GitHub-Actions의 secrets에 값을 설정해야함 -> Settings > Secrets > Actions > New repository secret(도커 계정 패스워드, 도커 레포지토리, 도커 ID, dev 환경의 ec2 인스턴스 ip, prod 환경의 ec2 인스턴스 ip, ec2 인스턴스 패스워드, application-dev.yml, application-prod.properties, ec2인스턴스 계정 ID) ->secrets.USERNAME, secrets.PASSWORD 의 경우 EC2에서 따로 설정이 필요
DOCKER_PASSWORD: 도커 계정 패스워드
DOCKER_REPO: 도커 레포지토리
DOCKER_USERNAME: 도커 ID
HOST_DEV: dev 환경의 EC2 인스턴스 ip
HOST_PROD: prod 환경의 EC2 인스턴스 ip
PASSWORD: EC2 인스턴스 패스워드
PROPERTIES_DEV: application-dev.properties 파일 내용
PROPERTIES_PROD: application-prod.properties 파일 내용
USERNAME: EC2 인스턴스 계정 ID(ec2-user)
위에서 HOST_PROD 및 HOST_DEV의 값은 EC2 인스턴스의 IP를 설정하시면 됩니다.
저같은 경우는 아래 파란색 네모친 값을 복사해서 붙여넣어주었습니다.
~~~.ap-northeast-2.compute.amazonaws.com
secrets.USERNAME, secrets.PASSWORD 의 경우 EC2에서 따로 설정이 필요합니다.
dockerfile설정
GitHub-Actions 테스트 해주는 파일 -> docker-compose.yml
Spring Boot LogBack을 통해 로그 파일 남기기
logback 설정 파일에서 로그를 남길 파일의 경로를 도커 컨테이너 기준으로 설정
트러블 슈팅
도커 아이디는 그냥 docker hub 로그안힐때 도커 아이디와 도커 비밀번호 입력해주면 된다.
도커 레포 이름은 shallweshallwe/shallwe-dev이렇게 있다면 shallweshallwe(도커 허브 프로필 아이디)를 입력해주면 된다.
추가로 host dev는 ec2 ip를 집어넣어야 하는데, 위에 사진에 퍼블릭 ipv4를 집어넣어야 한다.
이렇게 설정을 마치고 도커 컨테이너 로그를 확인해보니까
Property 'spring.profiles.include' imported from location 'class path resource [application-dev.yml]' is invalid in a profile specific resource [origin: class path resource [application-dev.yml] from app.jar - 5:14]
이런 오류가 떴는데, 이것은 yml파일에
를 추가하지 않았기 때문이다. yml파일이 바뀌면 action에 키도 항상 업데이트 해줘야한다.