投稿

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第8回)

イメージ
第8章: docker-compose の活用例 (Vue.js) 昨今の web フロントエンド開発で人気のある js フレームワークといえば React.js か Vue.js の2択になるようです。世界的には React.js が人気のようですが、日本国内では Vue.js ユーザーが多いような気がします。 Vue.js 自体は薄いフレームワークで実際の開発現場では Vue.js と合わせて、vuex や vue-router などが活用されることが多いようです。ここでは vue-cli を活用した環境を docker で再現しています。 8.1 作成する docker 環境について Vue.js については公式サイトの日本語訳も充実しているので公式サイトから関連情報も調べるのが良いと思います。 今回の設定で注意するところは docker-compose.yml ファイルで environment でポートを指定しているところです。ここは、いわゆる環境変数の指定に該当します。vue cli を起動すると port を 8080 で起動されることになるとおもいますが、あえて 3000 で指定しています。このやり方をしっておくとあとあと役に立つと思います。 Vue.js 公式 - https://jp.vuejs.org/ vue cli - https://cli.vuejs.org/ 8.2 準備する各ファイルの説明 下記のようなファイル構成を目指してゆきます。 (任意のディレクリを作成 今回は ~/tmp/docker_sample/node_vue) % mkdir -p ~/tmp/docker_sample/node_vue && cd ~/tmp/docker_sample/node_vue % touch Dockerfile docker-compose.yml compose_cmd.bash && \ chmod +x compose_cmd.bash Dockerfile (イメージを作成するためのフ

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第7回)

イメージ
第7章: docker-compose の活用例 (Node.js) 最近のweb開発では javaScript は必要不可欠なものになりました。以前は js といえば web ブラウザの中でうごかすものというの認識でしたが昨今では js を使ってサーバーサイドプログラミングをする場面も多くなってきました。 js を使ってサーバーサイドプログラミング環境を作る場合に定番となっているのが node.js と言われるものです。 これからの web アプリ開発の必須のスキルとして node.js はぜひ押さえておきたいところです。 7.1 作成する docker 環境について node.js も当然、公式の docker イメージが公開されています。 node.js は長期サポート (LTS) リリースモデルというやり方が採用されており、特別な理由がない場合、LTS のバージョンを指定すると間違いはないようです。 2020/12月時点では14となります。 7.2 準備する各ファイルの説明 下記のようなファイル構成を目指してゆきます。 (任意のディレクリを作成 今回は ~/tmp/docker_sample/node) % mkdir -p ~/tmp/docker_sample/node && cd ~/tmp/docker_sample/node (ファイルの中身は下記の記事参考) % touch Dockerfile docker-compose.yml hello.js Dockerfile (イメージを作成するためのファイル) FROM node:14.15.4 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app docker-compose.yml (compose コマンドで実行するファイル) version: '3.8' services: app: container_name: ctr_node14_15_4 build: context: . image: node14_15_4:yarn volum

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第6回)

イメージ
第6章: docker-compose の活用例 (Perl Web) 前回に引き続き docker-compose の活用事例を紹介します。 今回の事例は web アプリ開発の場合の事例です。昨今のweb アアプリはフレームワークを活用することがおおく、フレームワークは app サーバーを立ち上げた状態で利用することが多いので一工夫必要になります。 6.1 作成する docker 環境について 今回注目してほしいのは docker-compose.yml に command: の部分を別ファイルの読み込みにして、そのファイルの中に docker-compose up をする時に毎回実行させているところです。毎回実行させることで、アプリケーションサーバーの立ち上げや追加モジュールのインストール作業も行ってくれるので大変便利です。 今回の web アプリフレームワークは Mojolicious を選択しています。 6.2 準備する各ファイルの説明 必要なファイルを用意 (任意のディレクリを作成 今回は ~/tmp/docker_sample/perl_web) % mkdir -p ~/tmp/docker_sample/perl_web && cd ~/tmp/docker_sample/perl_web (ファイルの中身は下記の記事参考) % touch Dockerfile docker-compose.yml compose_cmd.bash && \ chmod +x compose_cmd.bash && \ echo "requires 'Mojolicious', '== 8.70';" >> cpanfile 各ファイルの中身については任意のテキストエディタで作成ください。 Dockerfile (イメージを作成するためのファイル) FROM perl:5.32.0 RUN cpanm Carton &am

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第5回)

イメージ
第5章: docker-compose の活用例 (Perl)  実際の開発現場での活用の場合 docker コマンドより docker-compose コマンドを使った方が使い勝手がよいとおもいます。ここでは docker-compose がなんであるのかというような詳細な説明は一旦省き、具体的な記述例を紹介してゆきます。 詳細な解説は公式ページを参考にしてください。 5.1 作成する docker 環境について 今回は Perl を題材にして汎用的なスクリプトを作成するための環境を作ってみたいと思います。基本的な考え方は他の言語でも共通する部分はあると思いますので他の言語を活用されている方でも参考にしてみてください。 5.2 準備する各ファイルの説明 下記のようなファイル構成を目指してゆきます。 (任意のディレクリを作成 今回は ~/tmp/docker_sample/perl) % mkdir -p ~/tmp/docker_sample/perl && cd ~/tmp/docker_sample/perl (ファイルの中身は下記の記事参考) % touch Dockerfile docker-compose.yml hello.p 各ファイルの中身については任意のテキストエディタで作成ください。 Dockerfile (イメージを作成するためのファイル) FROM perl:5.32.0 RUN cpanm Carton && mkdir -p /usr/src/app WORKDIR /usr/src/app docker-compose.yml (compose コマンドで実行するファイル) version: '3.8' services: app: container_name: ctr_perl5_32_0 build: context: . image: perl5_32_0:carton volumes: - .:/usr/src/app stdin_open: true tty: true hello.pl (起動テスト用のスクリプト)

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第4回)

イメージ
第4章: Dockerfile で挙動を再認識 docker hub に存在する image を活用すれば一瞬で新しい環境がつくれてとても便利です。実際に開発を進める場合は docker hub に存在する image に開発に最適な条件をくみあわせることが多いですがその時に場当たり的にコマンドを手動でうちつづけると再現性がよくありません。そういう場合は Dockerfile を活用します。 docker 環境の題材について 今回はプログラミング言語 Perl を題材にしています。Perl を選んでいる理由は私が Perl で開発の仕事をしているのでその辺はご容赦ください。基本的にどのプログラミング言語でも考え方は共通すると思うので、他の言語で構築される場合も参考になるかと思います。ご要望があればまたの機会で別の言語での構築方法も紹介したいと思います。 取り扱っているツールについて少し説明 Perl 5.32: プログラミング言語アプリケーション、2020/12月現在で最新版 plenv: Perl をバージョンごとにインストールするためのアプリ cpanm: Perl の拡張モジュールをインストールするためのアプリ Carton: Perl の拡張モジュールのインストール状況を管理するためのアプリ Mojolicious: Perl製の Web アプリケーション開発フレームワーク 4.1 作成する docker 環境の概要について 最終的に ctr-dev-perl-5.32.0 コンテナの中に入って作業ができる状態にする 配布するのは Dockerfile のみとして Dockerfile を起動すればコンテナが再現できるようにしたい Perlバー

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第3回)

イメージ
第3章 Docker になれるために 3.1 仮想空間というややこしい言い方 Docker とはなにかの話になると仮想や空間などというキーワードが出てきます。コンテナ型の仮想化という表現もされることがあります。「空飛ぶ自動車」という言葉なら空を飛んでいる自動車なんだとイメージができますが、「コンテナ型の仮想化」や「仮想空間」などという言葉はあまりにも日常からはなれている言葉なのでこういう言葉が話を分かりにくくさせている原因だと思います。 まずは図で表現して、コマンドラインを実行する形式で慣れていきたいと思います。 3.2 Docker の存在を確認する 最初に Docker アプリケーションのインストールをしました。通常アプリケーションというはオペレーションシステムが存在している前提でインストールするものですから、概念を図で表現すると下記のようなことになるかと思います。図を見るだけではなかなか腑に落ちないので実際にコマンドを叩きながらひとつづつ確認してゆきましょう。 3.2.1 パソコン上にDockerが存在する概念図 +--------+ | Docker | +--------+ +------------+ | OS (Mac) | +------------+ 3.2.2 コマンドの解説 docker --version - docker のバージョン情報 (ハイフンつけると違う表示) docker - docker で使えるコマンドの一覧が表示 3.2.3 Docker の存在を確認する例 (バージョンは日々更新されてるので最新にしておく) % docker --version Docker version 20.10.0, build 7287ab3 (指定がない場合は help 的な案内がでる) % docker 3.3 Docker のイメージを取得 docker image pull コマンドを使い、実際に docker hub に公開されている公式イメージを取得してみます docker はイ

[Docker 初心者向け] Docker を活用して開発環境を整えよう (第2回)

イメージ
第2章 Docker の準備 2.1 Docker の対応状況 もともとは Linux 上で提供されはじめた docker ですが、現在は Mac, Windows も対応しています。ここでは Mac に絞って紹介します。 2.2 Docker のインストール 2.2.1 メールアドレスを準備 登録用のメールアドレスを準備しておきましょう。現在は Docker をインストールするときに docker hub に登録するように迫られてきますので、 docker hub にも登録しておきます。 2.2.2 インストールは公式ページから インストールの順番 公式ページから Get started をクリックし指示通りにインストール docker - <https://www.docker.com/> Docker Desktop を選択 途中 docker hub の登録を迫られるので登録してよいメルアドを登録 2.3 インストール完了の確認 インストールが終了するとターミナルからコマンドライン操作が使えるようになるので確認しておきましょう。 インストールが終了したら下記のコマンドを打ち込んでみましょう、ちなみに私の環境では下記のような内容になりました。 2.3.1 コマンドの解説 docker version - docker のバージョン情報 docker-compose version - docker-compose のバージョン情報 2.3.2 インストール完了確認の例 % docker version Client: Docker Engine - Community (...省略) % docker-compose version docker-compose version 1.27.4, build 40524192 (...省略) 2.4 まとめ