build & production stage 구분해서 도커 이미지 크기 줄이기 실패
build & production stage 구분해서 도커 이미지 크기 줄이기 강의에서 다음과 에러가 납니다.
(base) david@davidui-MacBookPro ~/workspace/express dev ± docker build -t my-express-app-light . -f ./DockerFile
[+] Building 1.9s (13/13) FINISHED
=> [internal] load build definition from DockerFile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/node:18 0.8s
=> [build 1/5] FROM docker.io/library/node:18@sha256:f152130c9bb77afd49873a26fcfb6da7971b451ae6db51901fb7e028ccc0ca75 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 11.27kB 0.0s
=> CACHED [build 2/5] COPY package*.json . 0.0s
=> CACHED [build 3/5] RUN npm install 0.0s
=> CACHED [build 4/5] COPY . . 0.0s
=> CACHED [build 5/5] RUN npm run build 0.0s
=> CACHED [production 2/5] COPY --from=build ./build ./build 0.0s
=> CACHED [production 3/5] COPY --from=build ./package.json .package.json 0.0s
=> CACHED [production 4/5] COPY --from=build ./package-lock.json .package-lock.json 0.0s
=> ERROR [production 5/5] RUN npm install --only=production 0.9s
------
> [production 5/5] RUN npm install --only=production:
#13 0.561 npm WARN config only Use `--omit=dev` to omit dev dependencies from the install.
#13 0.885 npm ERR! Tracker "idealTree" already exists
#13 0.890
#13 0.891 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2023-12-30T05_16_10_548Z-debug-0.log
------
executor failed running [/bin/sh -c npm install --only=production]: exit code: 1
(base) ✘ david@davidui-MacBookPro ~/workspace/express dev ±
답변 2
1
음 일단 WORKDIR가 누락되었네요.
누락되어도 실행이 될 수는 있지만 명확하게 어디에 어플리케이션 파일들이 있으며 RUN, CMD를 정확히 어떤 경로에서 실행시켜줄지 명시하는거라 포함시키는걸 권장합니다.
그리고 무엇보다 프러덕션 스테이지에 오타가 있습니다!
COPY를 하실 때 복사는 잘 하셨는데 붙여넣기에 보시면 파일명 앞에 / 가 두곳에서 누락되었습니다:
COPY --from=build ./package.json .package.json
여기서 마지막에 .package.json으로 하셨는데 이렇게 하면 root 경로에 package.json이라는 파일이 생성되는게 아니라 .package.json으로 .이 앞에 추가된 잘못된 파일명으로 생성이 됩니다. 그래서 프러덕션 스테이지에서 npm install을 하려고 할 때 오류가 발생합니다.
0
작성한 DockerFile은 다음과 같습니다.
#Build stage
FROM node:18 as build
COPY package*.json .
RUN npm install
COPY . .
RUN npm run build
#Production stage
FROM node:18 as production
COPY --from=build ./build ./build
COPY --from=build ./package.json .package.json
COPY --from=build ./package-lock.json .package-lock.json
RUN npm install --only=production
CMD [ "npm", "start" ]
39강 배포용 workflow 만들기에서 main 브랜치에 merge 가 자꾸 실패합니다.
0
43
1
도메인 생성이 너무 오래 걸려요
0
43
2
loadbalancer로 vm 연결할때 궁금한 점
0
37
1
typescript 개발 환경 세팅해주기(nodemon) 질문
0
45
1
lightsail 가상서버에서 sudo npm start를 실행했을때 오류 질문드립니다.
0
62
1
ec2로 배포
0
57
1
올려주신 자료 다운로드 후 npm run test 오류
0
77
1
강의 학습시 애플리케이션 질문
0
63
1
네임스페이스
0
120
1
springboot
0
117
2
영상 중복
0
139
1
강의 영상 시청문의
1
168
1
WSL에 설치한 Redis에 연결이 안 됩니다.
0
324
1
실습시 비용 관련 질문드립니다.
0
392
2
secret manager 질문있습니다.
0
123
1
자동 유효성 검사 실패
0
155
1
ECS 클러스터에서 레디스와 express 연결할 때 질문이 있습니다!
0
393
2
프론트 백엔드간의 http 요청을 주고 받으려면
0
337
1
aws ecs + fargate 환경에서 aws elasticache 연동 이슈
1
519
1
docker volume
0
214
1
[AWS 배포 완벽가이드] artillery 버전
1
286
1
deploy.yml github action 성공 , 하지만 AWS
0
402
2
ECS ALB설정을 위한 vpc 설정
0
431
2
도커는 OS를 공유하지 않나요?
0
456
1





