inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)

build & production stage 구분해서 도커 이미지 크기 줄이기 실패

해결된 질문

817

최은혁

작성한 질문수 3

0

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 ±  
 

 

 

aws docker ci/cd aws-ecs

답변 2

1

김시훈 (도도소프트)

음 일단 WORKDIR가 누락되었네요.

누락되어도 실행이 될 수는 있지만 명확하게 어디에 어플리케이션 파일들이 있으며 RUN, CMD를 정확히 어떤 경로에서 실행시켜줄지 명시하는거라 포함시키는걸 권장합니다.

그리고 무엇보다 프러덕션 스테이지에 오타가 있습니다!

COPY를 하실 때 복사는 잘 하셨는데 붙여넣기에 보시면 파일명 앞에 / 가 두곳에서 누락되었습니다:

COPY --from=build ./package.json .package.json

여기서 마지막에 .package.json으로 하셨는데 이렇게 하면 root 경로에 package.json이라는 파일이 생성되는게 아니라 .package.json으로 .이 앞에 추가된 잘못된 파일명으로 생성이 됩니다. 그래서 프러덕션 스테이지에서 npm install을 하려고 할 때 오류가 발생합니다.

0

최은혁

엇.. 정말 오타가!! 감사합니다.

이제 잘 실행됩니다!

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