はじめに

ソフトウェアでいうコンテナは,元は运输业界でいうコンテナに由来しているわけですが,どちらのコンテナも类似するメリットを备えています。

コンテナ(運輸) コンテナ(ソフトウェア)
船や列车に乘せられる Windows / Mac的/ Linux的等で动かせる
荷物をまとめて积载できる 必要なコード,ライブラリ,データをまとめて配布できる
输送效率がアップする 開発・ビルド・テスト・デプロイ効率がアップする

これらのメリットをソフトウェア开発において享受するためのステップとして,

  1. 开発环境を共通化するためのCircleCIによる泊坞イメージの作成(本ブログ)
  2. 泊坞窗コンテナ上での开発
  3. 実行環境を共通化するためのCircleCIによる码头工人イメージの作成

をご紹介していきます。

なお,本ブログは2020年9月に开催した「CircleCIを学ぼうシリーズ第1弾カスタム码头工人イメージの作成」での内容を基にしています。

コンテナ作成の流れ:1。Dockerfile作成

今回は,「Node.js的+表达で动作するウェブサービスを开発」でき,「开玩笑+摩卡+ supertestを使ってテスト」できるような泊坞コンテナを作成してみます。开発者にとってコンテナを使うことのメリットは,自分の使っているPC上の环境をプロジェクトごとに异なりうる「标准」に合わせる必要がなにかに合わせる必要がなくなることです。Node.js的や必要なライブラリの特定のバージョンを探して,依存关系を気にしながらインストールして环境构筑する必要はありません。必要なライブラリやツールがすべて揃ったコンテナ上で开発をすぐに始めることができます。

それでは,开発·テスト用のコンテナを作成していきます。

まず,GitHub的上にリポジトリを作成します。笔者はCCI-IMG-节点というリポジトリを作成しました(https://github.com/mfunaki/CCI-Img-Node)。

次に,リポジトリ内のルートディレクトリにDockerfileファイルを作成します。

###开発用コンテナの构筑从节点:12#ワーキングディレクトリの设定WORKDIR /节点应用内#初期设定(的package.json生成)RUN NPM初始化-y#表达インストールRUN NPM安装明示#テスト环境(玩笑,摩卡,supertest)インストールRUN NPM安装开玩笑摩卡supertest

なお,码头工人コンテナのイメージ作成に関しては,CircleCIブログ”カスタム泊坞イメージを作成してCIビルドを実行する“にも説明があります。

コンテナ作成の流れ:2。config.yaml作成

コンテナイメージを作成するには,Dockerfileファイル中に必要な内容を定义し,码头工人建造コマンドでビルドするのが一般的です。今回は,CircleCIを使い,クラウド侧でイメージ作成を行い,DockerHubに登录する方法を绍介します。CircleCIを使うことで,例えばコンテナイメージを修正したい际に,元イメージの作成者が自分のPCが手元にないと修正が进められなくなるといった「人依存」「PC依存」に陥ることがなくなります。

したがって,コンテナイメージの作成においては,最低限必要なのは,github.comwww.drag240sx.comにアクセス可能なウェブブラウザということになります。码头工人や混帐コマンド,node . js等をあらかじめインストールしておかなくても(極端な例を挙げればスマートフォンからでも)開発インフラ整備や強化・修正が行えるということになります。

それでは,CircleCIで多克尔コンテナのイメージを构筑するために,リポジトリ内に.circleciディレクトリを作成します。.circleciディレクトリの中にはconfig.ymlファイルを用意します。

版本:2.1作业:build: docker: - image: cibuild /docker:最新步骤:- checkout - setup_remote_docker - run: name: " build a docker image"命令:| docker build -t mfunaki/cci-img-node。-运行:name:“Push to DockerHub”命令:| echo“$DOCKER_PASS”| docker login—username $DOCKER_USER—password-stdin && \ docker Push mfunaki/cci-img-node

上に挙げたconfig.ymlの中について,何点か说明をしていきましょう。

图像のところに指定された码头工人イメージですが,ここではCI向けに最適化されたCI构建イメージを使用しています。具体的には,码头工人イメージビルド用のcibuilds /泊坞窗を指定しています。

码头工人建造- tの后のタグ名や搬运工推の后のコンテナ名は适宜,ご自身で命名の上,设定してください。

コンテナ作成の流れ:3。コンテナ作成+登録

ここまで用意できたら,CircleCIにログインします。作成した的GitHubリポジトリをCircleCIのプロジェクトとして登录することで,クラウド侧で泊坞イメージを作成し,DockerHubへプッシュできます。

なお,完了するには,config.yml中の码头工人登录で使用しているDOCKER_PASS美元(パスワード)やDOCKER_USER美元(ユーザ名)に対応する環境変数を設定しておきます。つまり,他人に見られると問題のあるセキュリティ情報はconfig.ymlに直接記述するのではなく,CircleCIの環境変数として設定から設定するようにします。

2020 - 09 - 24 - 01. -雅彦png

さいごに

开発のインフラ整备までが完了しました。その2では,本稿で作成した泊坞コンテナのイメージを手元のPC上で起动し,必要な环境の揃ったコンテナの中で开発を进める方法を绍介していきます.Node.jsや必要なライブラリをインストールしたり,バージョンを気にすることなく开発を进めることができます。