Golangを久々に触ろうと思っている。
GolangでAPIサーバーを作るのでGo+echoにする。
そうなるとまずは開発環境を用意しないといけない。
Dockerになるよね。
GolangのDocker開発環境はまだつくってなかったので書き溜めます。
本番でも動かせるように小さめのにする予定。
とりあえずalpineじゃなくてcentos7にします。
Golang+Centos7環境のDockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
FROM centos:7 LABEL noffuy <3330072-noffuy@users.noreply.gitlab.com> WORKDIR /app RUN yum install -y epel-release \ && tig vim git \ && yum install -y golang --enablerepo=epel \ && go get -u github.com/labstack/echo/... \ && mkdir /log \ && localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 \ && rm -rf /var/cache/yum/* ENV LANG ja_JP.UTF-8 ENV LC_CTYPE "ja_JP.UTF-8" ENV LC_NUMERIC "ja_JP.UTF-8" ENV LC_TIME "ja_JP.UTF-8" ENV LC_COLLATE "ja_JP.UTF-8" ENV LC_MONETARY "ja_JP.UTF-8" ENV LC_MESSAGES "ja_JP.UTF-8" ENV LC_PAPER "ja_JP.UTF-8" ENV LC_NAME "ja_JP.UTF-8" ENV LC_ADDRESS "ja_JP.UTF-8" ENV LC_TELEPHONE "ja_JP.UTF-8" ENV LC_MEASUREMENT "ja_JP.UTF-8" ENV LC_IDENTIFICATION "ja_JP.UTF-8" ENV LC_ALL ja_JP.UTF-8 ADD src /app/src RUN go build src/main.go CMD ./main > /log/console.log 2>&1 |
こんな感じです。
src/main.goで開発していくようにしましょ。
echoだけは先に入れておきます。
その他必要なのがあれば、適宜修正していく。
実行コマンド
まずDockerイメージをビルドします。
1 |
$ docker build -t go-echo . |
コンテナ起動するときは開くポートと
log出力先のvolume指定だけ忘れないでね。
1 |
$ docker run -p 1323:1323 --rm -it -v `pwd`/log:/log go-echo |
これだけ。
簡単だーー。
楽しいGo開発を始めるとしよう。
アイキャッチ画像が壊滅的だ。。。(反省)
じゃあね〜〜〜〜。