강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

비전공자도 이해할 수 있는 Docker 입문/실전

COPY : 파일 복사(이동)

도커파일 copy

작성

·

21

0

image.png

폴더 복사가 안되서요. 여러번 해봤는데 이미지 새로 생성 안하면 변경이 안되나봐요.

image.png


새로 생성한 이미지로 해보면 my-app 이 생성됩니다.

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 ! 질문 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요 ~

 

말씀해 주신 현상은 Docker의 이미지 캐싱(Caching) 때문에 발생하는 문제예요 !

Docker는 이미지를 빌드할 때 효율성을 위해 레이어를 캐싱하는데, Dockerfile의 내용이 변경되지 않으면 이전에 빌드된 캐시를 재사용해요 ! 그래서 my-app 폴더를 추가했는데도 같은 이미지 이름(my-server)로 빌드하면 캐시된 이전 버전이 사용되어 변경사항이 반영되지 않는 거예요!

 

해결 방법은 크게 3가지가 있어요 !

첫 번째는 지금 하신 것처럼 새로운 이미지 이름(my-server-test)으로 빌드하는 방법이에요 !

두 번째는 docker build —no-cache -t my-server . 명령어로 캐시를 무시하고 빌드하는 방법이에요 !

세 번째는 docker build -t my-server:2.0 . 이렇게 이미지 태그 버전을 변경하는 방법이 있어요 !

실무에서는 보통 캐시를 무시하거나 버전을 명시하는 방법을 많이 사용해요 !

특히 버전을 명시하는 게 이미지 관리에 좋아요 :)

 

추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 이지민님!

Docker 환경에서 COPY 명령어를 사용하여 폴더를 복사하고자 할 때 발생할 수 있는 몇 가지 문제와 해결 방법에 대해 말씀드리겠습니다.

문제 요약

현재 이슈는 Dockerfile에서 지정한 폴더가 성공적으로 복사되지 않는 상황입니다. 이러한 문제는 종종 Docker 이미지를 새로 빌드하지 않거나, 빌드 컨텍스트 설정이 적절하지 않아서 발생합니다.

해결 방법

  1. 이미지 새로 생성: Docker 이미지는 한 번 생성되면 해당 시점의 상태를 유지합니다. 따라서 새로운 파일이나 폴더 구조를 COPY해야 하는 경우, 반드시 이미지를 다시 빌드해야 합니다. 이를 위해선 docker build -t <이미지이름> . 명령어로 이미지를 재생성하세요.

  2. 빌드 컨텍스트 확인: docker build 명령어를 실행하는 디렉토리가 Dockerfile과 함께 복사하고자 하는 파일들이 있는 위치인지 꼭 확인하세요.

  3. COPY 경로 설정:

    • Dockerfile에서의 COPY my-app /my-app/의 의미는 빌드 컨텍스트내의 my-app이라는 폴더를 컨테이너 내의 /my-app/ 경로에 복사한다는 것입니다.
    • 이 경우, 빌드 컨텍스트에 my-app이라는 폴더가 존재해야 합니다.

관련 질문과 해결 방법이 논의된 몇 가지 게시물을 확인하세요:
- 윈도우에서 ENTRYPOINT /bin/bash 실행 안되는 분들 참고 - Docker 명령어 실행 시 윈도우 환경에서 발생할 수 있는 문제와 해결책을 공유하는 게시물입니다.

이 정보를 바탕으로 문제를 해결하시기 바랍니다. 추가적인 문의사항이 있으시면 언제든지 질문해 주세요. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기