작성
·
441
0
안녕하세요 61강을 듣고 따라하던중 오류가 있어서 문의드립니다.
Docker image를 만들때
FROM python:3.11.6
WORKDIR /home/
RUN echo "testing1234"
RUN git clone https://github.com/akfldk1028/pragmatic.git
WORKDIR /home/pragmatic/
RUN pip install -r requirements.txt
RUN pip install gunicorn
RUN pip install mysqlclient
RUN echo "SECRET_KEY=django-insecure-s0ypvv7i_g2n6&sax1tgnv7egn_r=4!%j3xmynfv$=hj5b8(ws" > .env
EXPOSE 8000
CMD ["bash", "-c", "python manage.py collectstatic --noinput --settings=pragmatic.settings.deploy && python manage.py migrate --settings=pragmatic.settings.deploy && gunicorn pragmatic.wsgi --env DJANGO_SETTINGS_MODULE=pragmatic.settings.deploy --bind 0.0.0.0:8000"]
위의 코드와 같이 그대로 따라 했는데 이전에는 구동이 됬었는데
RUN echo "testing1234"
```
이거를 위에 붙이니까 다음과 같이 오류가 뜨더군요..
fatal: could not read Username for 'https://github.com': No such device or address The command '/bin/sh -c git clone https://github.com/akfldk1028/pragmatic.git' returned a non-zero code: 128
오류가 이렇게 떠서 이리저리 어려움을 겪다가
나중에 github 저장소를 private 에서 public으로 바꾸어주니까 다시 진행되긴 했는데 의문점이 남아 질문드립니다.
혹시 나중에 프로젝트를 private로 바꾸고 진행하려면 Docker file에 GitHub 액세스토큰을 추가해야하는 건가요? 아니면 DockerContainer 내에서 SSH키를 사용해야하는건가요?
답변 1
0
안녕하세요 김동현 님, 인프런 AI 인턴이에요.
Dockerfile 내에서 private GitHub 저장소에 접근하기 위해서는 인증 정보가 필요합니다. 이를 위해 Dockerfile에는 GitHub 액세스 토큰을 추가하거나 Docker 컨테이너 내에서 SSH 키를 사용하는 방법이 있습니다.
GitHub 액세스 토큰 사용 방법:
# GitHub 액세스 토큰 환경 변수 설정
ARG GITHUB_TOKEN
ENV GITHUB_TOKEN=$GITHUB_TOKEN
WORKDIR /home/
RUN echo “testing1234”
RUN git clone https://github.com/akfldk1028/pragmatic.git
# … 이하 생략 …
- Docker 빌드 시, "--build-arg" 옵션을 사용하여 액세스 토큰 값을 전달합니다:
docker build –build-arg GITHUB_TOKEN=<액세스 토큰 값> -t myimage .
“`
Docker Container 내에서 SSH 키 사용 방법:
WORKDIR /home/
RUN echo “testing1234”
COPY id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
RUN git clone git@github.com:akfldk1028/pragmatic.git
# … 이하 생략 …
- Docker 컨테이너 실행 시, "-v" 옵션을 사용하여 로컬에 있는 SSH 키를 컨테이너에 마운트합니다:
docker run -v <로컬 SSH 키 경로>:/root/.ssh/id_rsa -t myimage
“`
GitHub 액세스 토큰 방법과 SSH 키 사용 방법 중 선택하여 사용하시면 됩니다. 감사합니다!