2017-12-17 48 views
-1

나는 docker에서 다단계 빌드를 사용하고 있으며 로컬에서 완벽하게 만들 수 있습니다. Jenkins를 사용하여 CI 프로세스에서 이미지를 빌드하고 있습니다. 모든 단일 무대가 작동하므로 다중 무대와 관련이 있어야합니다. 젠킨스는 내가 할 이미지 구축을 시작하면 다음`젠킨스/젠킨스 : 2.95``Docker mulitstage build jenkins

다음
Step 1/11 : FROM node:8.1.4-alpine as builder 
Error parsing reference: "node:8.1.4-alpine as builder" is not a valid repository/tag: invalid reference format 

### STAGE 1: Build ### 

# We label our stage as ‘builder’ 
FROM node:8.1.4-alpine as builder 

COPY package.json ./ 

## Storing node modules on a separate layer will prevent unnecessary npm installs at each build 
RUN npm i && mkdir /ng-app && cp -R ./node_modules ./ng-app 

WORKDIR /ng-app 

COPY . . 

## Build the angular app in production mode and store the artifacts in dist folder 
RUN $(npm bin)/ng build --prod 


### STAGE 2: Setup ### 

FROM nginx:1.13.3-alpine 

## Copy our default nginx config 
COPY nginx/default.conf /etc/nginx/conf.d/ 

## Remove default nginx website 
RUN rm -rf /usr/share/nginx/html/* 

## From ‘builder’ stage copy over the artifacts in dist folder to default nginx public folder 
COPY --from=builder /ng-app/dist /usr/share/nginx/html 

CMD ["nginx", "-g", "daemon off;"] 

나는 다음과 같은 젠킨스 버전을 사용하고 내 Dockerfile입니다

누군가가 내게 올바른 방향으로 나를 암시 할 수 있을까요? 고맙습니다.

+3

도커 버전이 다른가요? 멀티 스테이지 빌드를 지원하지 않는 이전 버전의 도커를 사용 중일 수 있습니다. 나는 그것이 올바르게 기억되면 17.05 또는 17.06에 올랐다 고 생각합니다. –

답변

0

문제의 100 % 해결책이 아니지만 다단계 빌드 사용을 중단했습니다. 기본적으로 스테이지 2를 사용하고 미리 수동으로 생산 버전을 구축하십시오.

### STAGE 2: Setup ### 

FROM nginx:1.13.3-alpine 

## Copy our default nginx config 
COPY nginx/default.conf /etc/nginx/conf.d/ 

## Remove default nginx website 
RUN rm -rf /usr/share/nginx/html/* 

## From ‘builder’ stage copy over the artifacts in dist folder to default nginx public folder 
COPY --from=builder /ng-app/dist /usr/share/nginx/html 

CMD ["nginx", "-g", "daemon off;"]