• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

no such file or directory, open '/app/package.json'

22.05.03 17:16 작성 조회수 553

0

### 한줄 요약

개별 컨테이너 에서는 build, run 이 정상적으로 되며, package.json 이 존재하지만
docker-compose 로 실행할 경우에만 package.json 을 찾을 수 없다는 에러가 발생

# System

OS : Windows 10
IDE : VSC
Docker : V 20.10.14
Docker Desktop : 4.7.1 (77678)
Github Reopsitory : https://github.com/unchaptered/22-05-docker-react-proxy

 

### 발생한 에러


docker-compose up / docker-compose up --build 시,
backend, frontend 모두 /app/package.json 을 찾을 수 없다는 에러 발생.

 

### 예상되는 원인


0. Dockerfile 등에서 오탈자 있는 경우
1. package.json 이 없는 경우
2. package.json 이 있는데 잘못된 경로로 연결을 시도한 경우

### 0번 확인


Dockerfile, yml, conf 에서 유의미한 옽라자를 찾을 수 없었습니다.
관련하여 깃허브 레포 업로드해두겠습니다.

### 1번 확인

알 수 없는 이유로 docker-compose 의 빌드 후 실행이 되지 않았습니다.
따라서 backend, frontend 컨테이너를 개별적으로 확인해야 했습니다.

Backend 확인 결과 : 5000 포트에서 정상 실행 되었으나, MySQL 연결 실패 에러 발생 (compose 에러와 무관한 내용이라서 무시해도 될 것 같다고 생각했습니다.)

0. (root 디렉토리)
1. cd backend
2. docker build -f Dockerfile.dev -t nchaptered/test-docker ./
3. docker run unchaptered/test-docker
4. docker exec -it 컨테이너_ID sh
5. ls
6. cat package.json

Frontend 확인 결과 : 3000 포트에서 정상 실행 되었습니다.

0. (root 디렉토리)
1. cd frontend
2. docker build -f Dockerfile.dev -t unchaptered/test-docker-f ./
3. docker run unchaptered/test-docker-f
4. docker exec -it 컨테이너_ID sh
5. ls
6. cat package.json

 

### 2번 확인

 

1. docker-compose up --build
2. Running 5/5/ build 정상 실행
 - Network 22-05-docker-multi-react_default  Created
 - Container app_backend                     Created
 - Container app_frontend                    Created
 - Container app_mysqlA                      Created
 - Container app_nginx                       Created

3. Attaching to app_backend, app_frontend, app_mysqlA, app_nginx
 - app_backend                     Error 254 : erno -2 no such file or directory, open '/app/package.json'
 - app_frontend                    Error 254 : erno -2 no such file or directory, open '/app/package.json'
 - app_mysqlA                      Success : ready to connection, Version '5.7.38'
 - app_nginx                       

 

결국은 빌드는 되는데 실행이 안되는 것 같습니다.

그 이유가 /app/package.json 인 데, 애초에 실행이 안되니 exec -it 컨테이너명 sh 으로 확인이 불가능한 상태입니다.

해당 부분에서 어떤 방식으로 접근 해야 할지 알려주시면 감사하겠습니다.

답변 2

·

답변을 작성해보세요.

0

에러 발생 지점은 volume 으로 인한 에러였습니다.
따라서 volume 을 지우는 것으로 해결했지만, 그 결과 실시간으로 변하는 것이 해결되지 않았습니다.

참조 : docker-compose up 실행 시 no such file or directory, open '/usr/src/app/package.json' 에러 (tistory.com)

아마도 CHOKIDAR_USEPOLLING 환경 변수를 주지 않은 것 같지만, 해당 부분은 다음 번에 확인해봐야겠습니다.

0

docker system prune --volumes
docker rmi 등으로 이미지, 컨테이너, 볼륨 캐시 전부 지우고 작업을 해도 계속해서 동일한 에러가 발생하고 있습니다.

수업 시간에 작성한 코드와 다른 점은
4개의 컨테이너(back,front,nginx,mysql) 에 별칭을 주었고 제 로컬 PORT 3306 이 사용 중이어서 3307:3306 으로 매핑을 변경한 것 뿐입니다. ㅠㅠ