はじめに
2日目と言いつつ前回の日記から1週間立ってしましました...。Midtermシーズンなので仕方なかったです(言い訳)。今回も@Sekky0905Ksさんのコミットを遡らせていただき、使われている技術一つ一つをまとめさせていただきました。
サーバーサイドは勉強中の身なので間違い等ありましたらご報告いただけると嬉しいです。それでは始めていきましょう。
Dockerのセットアップ
前回はビルドされたnuxtのファイル(index.html)を表示するstatic serverを立ち上げるところまで実装しました。
今回はDockerを導入していきます。なぜDockerを使う必要があるのかという疑問を持つ方もいると思いますが、端的にいいますと、Dockerを利用することでプログラムの実行環境を管理し、共同開発者と実行環境を共有しやすくするというメリットがあります。詳しくは"【図解】Dockerの全体像を理解する -前編-"を参考にしてください。
まず最初に、コンテナの構成情報を定義したDockerfileを作成します。詳しいコマンドが気になる方は"いまさらDockerに入門したので分かりやすくまとめます"を参考にしてください。
FROM golang:1.12
# root を docker内の/go/src/github.com/hideUW/nuxt_go_templateにコピー
ADD ./ /go/src/github.com/hideUW/nuxt_go_template
# nuxt_go_template ディレクトリに移動
WORKDIR /go/src/github.com/hideUW/nuxt_go_template
次に、Dockerコンテナ内での処理をdocker/docker-compose.yaml
内に記述します。
version: '3'
services:
app:
build:
context: ./
dockerfile: docker/Dockerfile
volumes:
- ./:/go/src/github.com/hideUW/nuxt_go_template
command: bash -c 'cd /go/src/github.com/hideUW/nuxt_go_template/server && go run *.go'
ports:
- "8080:8080"
container_name: app
最後に、$ docker-compose up -d
を実行し、docker-compose.yml
からコンテナの生成と起動を行います。
http://localhost:8080/ にアクセスし、前回と同様の画面が表示されていれば、Dockerのsetupが完了です。
終わりに
次回はmysqlのセットアップをしていこうと思います。
参考
@Sekky0905Ksさん - nuxt-vue-go-chat
@kotaro-dr さん - 【図解】Dockerの全体像を理解する -前編-
@gold-kou さん - いまさらDockerに入門したので分かりやすくまとめます