작성
·
739
0
개별 컨테이너 에서는 build, run 이 정상적으로 되며, package.json 이 존재하지만
docker-compose 로 실행할 경우에만 package.json 을 찾을 수 없다는 에러가 발생
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 이 있는데 잘못된 경로로 연결을 시도한 경우
Dockerfile, yml, conf 에서 유의미한 옽라자를 찾을 수 없었습니다.
관련하여 깃허브 레포 업로드해두겠습니다.
알 수 없는 이유로 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
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 으로 매핑을 변경한 것 뿐입니다. ㅠㅠ