工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

コンテナーを使用したマルチステージ ビルド

システムは、完成した状態で出荷するとすぐに非常に大きくなります。これには、ビルドと、多くの場合、ビルドおよびテスト環境が含まれます。出荷するファイルの抽出は問題なくても、時間がかかります。

コンテナーは、これを自動的に行う可能性を提供します。

ここでは、1 つのファイルで複数のコンテナーを定義するオプションがあります。 JavaScript で作成され、Node.js で構築された Web サイトが良い例です。

例:

Node.js:~ 400 Mbyte – 600 Mbyte
ウェブサーバー nginx:~ 20 Mbyte
ウェブサイト:~ 2 Mbyte

コンテナーとしてのシステム全体は合計で 600 MB を超えますが、必要なのは 22 MB (Web サーバー + Web サイト) だけです。さらに、生産的な操作には必要のないソフトウェアが存在するため、システムのセキュリティ上のリスクがあります。ここでの解決策は、マルチステージ ビルドです。

マルチステージ ビルドでは、複数のコンテナーが 1 つのファイルで定義され、必要なデータのみが 1 つのコンテナーから別のコンテナーに送信されます。

マルチステージ Dockerfile の例

Node.js にとどまるために、マルチステージ ビルドの例を次に示します。最初のコンテナーにはビルド システムとして Node.js が含まれており、その中に Web サイトが作成されます。 2 番目のコンテナーには、ビルド後に最初のコンテナーから必要なデータをコピーする Web サーバーが含まれています。

## 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 と alpine には非常に小さな Linux ディストリビューションを使用しています。

もう 1 つの利点は、2 つの既製のコミュニティ コンテナーにアクセスできるため、それらを作成して維持する手間がかからないことです。システム アップデートの場合、コミュニティ コンテナは単純に定期的に置き換えられます。 GitLab (またはその他のツール) を使用すると、パイプラインですべてを驚くほど自動化できます。


産業技術

  1. ビジネスリーダーとの信頼を築くためにクラウドサービスを賢く選択する
  2. 科学的記数法による算術
  3. インダストリー4.0ソリューションアーキテクトとのQ&A
  4. Raspberry Pi、DHT11センサー、Thingspeakを使用して最初のIOTを構築します。
  5. Microsoftは、170億のパラメータを使用して最大の言語生成モデルを構築します
  6. サプライチェーン企業がAIを使用してロードマップを構築する方法
  7. スマート調達はAIとHIのバランスをとる
  8. コンテナクレーン
  9. x86 上のアーム用のコンテナー ビルド
  10. コンテナーを使用したマルチステージ ビルド
  11. Docker のヒントとベスト プラクティスを含む Node-Red