초기 도커파일은,
FROM node:lts-apline
WORKDIR /src
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD [ "npm", "start" ]
으로 작성하여 진행했습니다.
여기서 젠킨스가 해당 도커파일을 읽을 때 계속해서 npm install을 시도하지만,
ERROR: failed to solve: process "/bin/sh -c npm install" did not complete successfully:
해당 에러가 나면서 젠킨스 fail이 되었습니다.
문제를 해결하기 위해 구글링도 하며, 도커파일을 수없이 변경하며 진행하였지만,
해결책이 없었고, 새로운 도커파일을 만들어서 진행해보았습니다.
새로운 도커파일
FROM node:20.11 AS build
RUN mkdir /app
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY . /app/
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
위 파일 처럼, alpine을 없애고, 로컬에서 작업했던 노드 버전을 입력해주었습니다.
여기서, 위에 생긴 에러가 사라지게 되었고.
이전에는 초기상태라서 npm run build가 필요 없었지만, 프로젝트를 진행하면서 애플리케이션 파일을 생성하는 데 필요한 스크립트가 package.json의 scripts 섹션에 추가되어,
npm run build를 넣었습니다.
정상작동 확인!