1.Dockerfileを作成
RUN mkdir /go/src/charts_server && apt-get update && apt-get install \
-y vim
WORKDIR /go/src/charts_server
ADD . /go/src/charts_server
・FROM golang:latest
golangの最新版をベースにします。
・RUN mkdir /go/src/charts_server && apt-get update && apt-get install \ -y vim
mkdirで作業場所の作成。エディタもインストールします。
・WORKDIR /go/src/charts_server
Docker instructionの実行ディレクトリを/go/src/charts_serverへ変更。
・ADD . /go/src/charts_server
カレントディレクトリを/go/src/charts_serverへコピーします。
2.docker-compose.ymlを作成
services:
app:
build: .
tty: true
volumes:
- ./work:/go/src/charts_server
ports:
- "8080:8080"
depends_on:
- mysql
mysql:
image: mysql:latest
container_name: mysql_charts_container
environment:
MYSQL_ROOT_PASSWORD: ${ROOTPASS}
MYSQL_DATABASE: ${DATABASE}
MYSQL_USER: ${USERNAME}
MYSQL_PASSWORD: ${USERPASS}
3.上記のファイルを作成後に以下のコマンドをターミナルにて実行
$docker-compose up -d
Dockerfileとdocker-compose.ymlの記述内容を元に環境が構築されます。
4.作成したDockerコンテナの中へ入るコマンドを実行
$docker exec -it charts_server_app_1 /bin/bashを実行し、コンテナ内に入る
上記コマンドを入力することでコンテナ内に入れます。
コンテナ内の/go/src/charts_serverをworkディレクトリへマウントしています。
そのため、/go/src/charts_serverへフォルダやファイルを追加するとマウントしているworkディレクトリにも追加されます。
所感
今回はDockerを使用してgoの環境構築を実行しました。かなり難しかったです。
pythonに対しての環境構築は何度も行っているので、サクサクできるが、今回は時間がかかりました。
苦戦はしたが、Dockerで一度環境を構築してしまえば他の人に対しても配布できるし、環境構築で同じように時間がかかることがないのでメリットは大きいなと思います。
そして何よりも、pc内にgoをインストールしなくても、Docker内でgoを使用できるのはかなりいいです。(誰かと共同作業するわけでも無いので、意味ないんですけどね・・・)
環境構築をする際に参考にさせていただいたのは以下になります。
データサイエンティストかめさんのブログ:わかりやすくておすすめです。
dockerを使ってGolangの環境構築:ほぼほぼ真似させていただきました。