KEEPER 홈페이지 R2의 취약점, 버그 패치를 위한 개발 서버 인프라
Github Actions와 같은 빌드 서버를 사용하지 않고 로컬에서 빌드 후 이미지를 서버에 전달하여 실행하는 방식으로 구현되어있습니다.
- Caddyfile 주소를 사용할 도메인 주소로 변경합니다.
.example.env를 참고하여.env파일을 생성합니다.- 배포할 서버에 docker와 rsync를 설치합니다.
- 본인 컴퓨터(빌드 및 배포를 진행할 로컬)에서 unregistry를 설치합니다.
- rsync를 이용하여 서버로
build를 제외한 현재 디렉토리에 있는 모든 폴더와 파일들을 전송합니다
- 서버에
/opt/Homepage-R2-secfixes-dev-infra/폴더를 만들어주세요. rsync -avhzP --exclude=".git" --exclude="build" --rsync-path="sudo rsync" -e 'ssh -i /home/user/.ssh/my_special_key' . user@remote.server:/opt/Homepage-R2-secfixes-dev-infra/
./build/back/build_back.sh및./build/front/build_front.sh를 실행시켜서 도커 이미지를 생성합니다.
- 서버나 로컬 환경에 맞게
--platform linux/amd64를 수정해주세요. - Dockerfile에서 또한 빌드 환경에 따라 설정해주세요.
- unregistry를 통하여 빌드한 도커 이미지들을 전달합니다.
docker pussh homepage-back-r2:latest user@remote.server -i /home/user/.ssh/my_special_keydocker pussh homepage-front-r2:latest user@remote.server -i /home/user/.ssh/my_special_key
- 서버에서 docker compose를 실행시킵니다.
docker compose -f compose.yml up -d
6~8은 build_n_deploy.sh를 실행함으로서 동일한 명령어들을 한 번에 실행할 수 있습니다.
./build/back/build_back.sh및./build/front/build_front.sh를 실행시켜서 도커 이미지를 생성합니다.- unregistry를 통하여 빌드한 도커 이미지들을 전달합니다.
docker pussh homepage-back-r2:latest user@remote.server -i /home/user/.ssh/my_special_keydocker pussh homepage-front-r2:latest user@remote.server -i /home/user/.ssh/my_special_key
- 서버에서 docker compose를 실행시킵니다.
docker compose -f compose.yml up -d
1~3은 build_n_deploy.sh를 실행함으로서 동일한 명령어들을 한 번에 실행할 수 있습니다.
myapp:latest 수정