Dockerfileの書き方を学ぶ

スポンサーリンク

今回はDockerfileの書き方と、それを使用したコンテナの起動方法を学んでいきます。

スポンサーリンク

環境

Dockerfileとは

DockerfileとはDockerイメージを作るためのレシピのようなものです。例えばnuxt.jsの開発環境を構築したい場合、OSのイメージに必要なパッケージをインストールしていく必要がありますがそこまで自動で行ってくれるレシピを元にイメージを作成することができます。

Dockerfileの記述

早速Dockerfileを記述していきます。今回はnuxt.jsの開発環境を構築します。

FROM node:lts

RUN apt-get update && \
    apt-get upgrade -y && \
    yarn global add @vue/cli && \
    yarn global add @vue/cli-init && \
    yarn global add create-nuxt-app
 
EXPOSE 3000 

FROMはベースとするイメージを指定します。nodeのイメージがあったのでそちらをベースにします。コロン以降はタグを表します。使いたいバージョンなどを指定できます。

RUNは実行するOSコマンドを指定します。パッケージの更新とvue-cliのインストールを行います。昔はcreate-nuxt-appは必要なかったと思うのですが、先ほど試したら入れないとエラーになったので追加しました。

EXPOSEはコンテナが接続用にListenするポートを指定します。

Dockerfileを利用したコンテナの生成

イメージの作成(docker build)

Dockerfileをもとにイメージを作成していきます。カレントディレクトリにDockerfileが存在するものとします。

buildコマンド実行後に「docker images」で目的のイメージが作成されていることが確認できると思います。

> docker build -t mynuxt:1 .
(省略)
> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mynuxt              1                   3d2e137f9e57        6 seconds ago       1.32GB
node                lts                 a37df1a0b8f0        5 hours ago         918MB

指定しているオプションについては次の通りです。

  • -t:作成するイメージ名を指定します。コロン以降はTAGを表します。

作成したイメージを起動する

これだけだとnuxt開発環境が作成されたかわからないので、実際にプロジェクトを作成してみます。

まず、コンテナの起動と、コンテナへのアクセスを行います。

> docker run -d -it -p 3000:3000 -v ${PWD}:/work --name mynuxt-1 mynuxt:1
> docker exec -it mynuxt /bin/bash

コンテナにアクセスした状態で以下の操作を行います。

# npx create-nuxt-app myproject
(選択肢は全てデフォルト)

localhostからアクセスするために、myproject/nuxt.config.jsに次の設定を追加します。

export default {
  mode: 'universal',
  // ここから
  server: {
    port: 3000,
    host: '0.0.0.0',
  },
  // ここまで

コンテナにアクセスしてサーバを起動します。

# cd myproject
# npm run dev

ブラウザからhttp://localhost:3000へアクセスするとページが表示されます。

さいごに

コンテナ操作、Dockerfileと来たので、次はDocker Composeですかね。Docker Comoposeは触ったことないのでがんばって学習しないと。

以上です。

プログラミング
スポンサーリンク
スポンサーリンク
未完成ラボ

コメント

タイトルとURLをコピーしました