산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

컨테이너를 사용한 다단계 빌드

시스템이 완성된 상태로 배송되면 시스템은 순식간에 매우 커집니다. 여기에는 빌드와 빌드 및 테스트 환경이 포함됩니다. 배송될 파일의 ​​추출이 문제가 되지 않더라도 시간이 많이 걸립니다.

컨테이너는 이를 자동으로 수행할 수 있는 가능성을 제공합니다.

여기에서 하나의 파일에 여러 컨테이너를 정의할 수 있는 옵션이 있습니다. JavaScript로 만들고 Node.js로 빌드한 웹사이트가 좋은 예입니다.

예:

Node.js:~ 400MB – 600MB
웹서버 nginx:~ 20MB
웹사이트:~ 2MB

전체 시스템을 컨테이너로 사용하면 총 600MB가 넘지만 22MB(웹 서버 + 웹 사이트)만 필요합니다. 또한 생산적인 작업에 필요하지 않은 소프트웨어가 있기 때문에 시스템에 대한 보안 위험이 있습니다. 여기에서 솔루션은 다단계 빌드입니다.

다단계 빌드에서는 여러 컨테이너가 하나의 파일에 정의된 다음 한 컨테이너에서 다른 컨테이너로 필요한 데이터만 전송됩니다.

다단계 dockerfile의 예

Node.js를 유지하기 위해 다음은 다단계 빌드 예제입니다. 첫 번째 컨테이너에는 Node.js가 빌드 시스템으로 포함되어 있으며 그 안에 웹 사이트가 생성됩니다. 두 번째 컨테이너에는 빌드 후 첫 번째 컨테이너에서 필요한 데이터를 복사하는 웹 서버가 포함됩니다.

## Base System Stage 1
## Use community Node.js container
FROM node:8.11.3 as buildsystem

## Add source from our Git project
COPY ./source /root/frontend

## Build frontend with Nodejs
WORKDIR /root/frontend/
RUN npm install \
&& npm run build

#####################################################################
#####################################################################

## Base System Stage 2
## Use community nginx container
FROM nginx:alpine 

## Copy build from stage 1
RUN mkdir -p /var/www/html/<MyApp>
COPY --from=buildsystem /root/frontend/dist/ /var/www/html/<MyApp>/

## Add default config for nginx
ADD default.conf /etc/nginx/conf.d/

## Publish Port
EXPOSE 80

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

결과는 가장 필요한 것만 포함하는 작은 컨테이너입니다. 알파인이 있는 nginx용으로 매우 작은 Linux 배포판을 사용합니다.

또 다른 장점은 미리 만들어진 두 개의 커뮤니티 컨테이너에 액세스할 수 있으므로 이를 만들고 유지 관리할 작업이 없다는 것입니다. 시스템 업데이트의 경우 커뮤니티 컨테이너가 정기적으로 교체됩니다. GitLab(또는 다른 도구)을 사용하여 파이프라인에서 모든 것을 훌륭하게 자동화할 수 있습니다.


산업기술

  1. 현명하게 클라우드 서비스를 선택하여 비즈니스 리더와의 신뢰 구축
  2. 과학적 표기법을 사용한 산술
  3. Industry 4.0 솔루션 설계자와의 Q&A
  4. Raspberry Pi, DHT11 센서 및 Thingspeak로 최초의 IOT를 구축하십시오.
  5. Microsoft, 170억 개의 매개변수로 가장 큰 언어 생성 모델 구축
  6. 공급망 기업이 AI로 로드맵을 구축하는 방법
  7. AI와 HI의 균형을 맞춘 스마트 조달
  8. 컨테이너 크레인
  9. x86의 arm용 컨테이너 빌드
  10. 컨테이너를 사용한 다단계 빌드