728x90
반응형
이 포스트에서는 Dockerfile에 GITHUB_TOKEN을 사용해 GitHub에서 코드를 클론하고, 도커 이미지 생성 시 라이브러리를 자동으로 설치하는 방법을 알아보겠습니다. 이 과정을 통해 반복적인 환경 설정을 자동화하고, Docker 이미지를 효율적으로 빌드할 수 있습니다.
1. 준비 작업
1.1 GITHUB_TOKEN 생성하기
- GitHub에 로그인합니다.
- **Settings → Developer Settings → Personal Access Tokens (classic)**으로 이동합니다.
- Generate new token 버튼을 클릭하고 필요한 권한(예: repo)을 선택합니다.
- 생성된 토큰을 복사합니다. 이 토큰은 나중에 사용되므로 안전한 곳에 보관하세요.
2. Dockerfile 작성
아래는 Dockerfile 예제로, 도커 이미지 생성 과정에서 GitHub 리포지토리의 코드를 자동으로 클론하고 필요한 라이브러리를 설치합니다.
Dockerfile 예제
# 1. Ubuntu 20.04 이미지를 기본 이미지로 사용
FROM ubuntu:20.04
# 2. 필요한 패키지 설치 (git 포함)
RUN apt update && apt install -y \
python3 python3-pip sudo git vim curl
# 3. GITHUB_TOKEN을 환경 변수로 전달받기 위한 ARG 설정
ARG GITHUB_TOKEN
# 4. GitHub에서 코드 다운로드
RUN git clone --branch dynamo-inserter https://$GITHUB_TOKEN@github.com/<username>/<repository>.git /app
# 5. 작업 디렉토리 설정
WORKDIR /app
# 6. 설치가 필요한 라이브러리 설치 (예시)
RUN sudo apt update && sudo apt install -y $(grep -v '^#' /app/<repository>/requirements.txt)
3. Docker 이미지 생성 명령어
1. GITHUB_TOKEN 환경 변수 설정
도커 빌드 시 토큰을 안전하게 전달하기 위해, 터미널에서 환경 변수를 설정합니다.
export GITHUB_TOKEN=your_personal_access_token
2. Docker 이미지 빌드
아래 명령어로 도커 이미지를 빌드합니다.
--build-arg 옵션을 사용해 GITHUB_TOKEN을 Dockerfile에 전달합니다.
sudo docker build --build-arg GITHUB_TOKEN=$GITHUB_TOKEN -t myapp:latest .
4. Docker 컨테이너 실행
도커 이미지를 생성한 후, 아래 명령어로 컨테이너 인터렉티브 모드를 실행합니다.
sudo docker run -it myapp:latest /bin/bash
- 컨테이너 내부에서 /app 디렉터리에 클론된 코드와 설치된 라이브러리를 확인할 수 있습니다.
5. 예상 출력 및 확인 방법
- 이미지 빌드 과정 중 로그에서 GitHub 리포지토리의 클론 진행 상황이 출력됩니다.
- 컨테이너 내부에서 /app 디렉터리로 이동해, 클론된 리포지토리와 requirements.txt 파일이 있는지 확인합니다.
cd /app
ls -al
3. 필요한 라이브러리가 정상적으로 설치되었는지 확인합니다.
pip3 list
6. 주의사항 및 보안 팁
- 토큰 관리에 주의
- GITHUB_TOKEN이 포함된 이미지를 외부에 공개하지 않도록 주의하세요.
- .env 파일을 사용해 토큰을 안전하게 관리하고 필요할 때만 로드하는 것도 좋은 방법입니다.
- 토큰 만료 및 갱신
- 생성된 토큰의 유효 기간이 만료되면, 새 토큰을 발급받아 Dockerfile 빌드에 사용하세요.
7. 결론
이제 Docker를 사용해 GitHub 리포지토리를 클론하고, 환경 설정을 자동화할 수 있습니다.
이 방법을 활용하면 반복적인 설정 작업을 줄이고, 일관된 개발 환경을 유지할 수 있습니다.
'임베디드 관련 카테고리 > Ubuntu' 카테고리의 다른 글
dd 명령어로 ISO 이미지를 특정 파티션에 설치하는 방법 (0) | 2024.11.26 |
---|---|
Ubuntu 관리 꿀팁: USB 제작부터 파티션 관리, ISO 생성, 특정 파티션 OS 설치까지! (0) | 2024.11.26 |
.env 파일로 GITHUB_TOKEN 환경 변수 항상 사용하기 (0) | 2024.10.22 |
Docker 이미지 삭제 가이드 (0) | 2024.10.21 |
WSL(Ubuntu)에서 Docker 이미지 생성 및 패키지 관리 가이드 (3) | 2024.10.21 |
댓글