LoginSignup
0
0

More than 5 years have passed since last update.

Goで書いたサーバーをArukasで動作させるまでのステップ

Last updated at Posted at 2018-10-07

GoでHTTPサーバーを用意する

シンプルなHTTPサーバーを用意する

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello world\n")
}

func main() {
    fmt.Println("Starting server")
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Dockerfileを用意する

FROM golang:latest as builder

ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
WORKDIR /go/src/github.com/yokoe/go-server-example
COPY . .
RUN go build main.go

# runtime image
FROM alpine
RUN apk add --no-cache ca-certificates
COPY --from=builder /go/src/github.com/yokoe/go-server-example /app
RUN ls /app
EXPOSE 8080
CMD /app/main

ビルドしてみて動作確認する

docker build -t go-server-example .
docker run -p 8080:8080 -t go-server-example

curlでAPIを叩いてみて、ちゃんとレスポンスが帰って来ればOK

curl http://localhost:8080/

Dockerhubにデプロイする

DockerでSign Inする

Docker.app(macOS)の場合はメニューからSign Inできる。

イメージをPushする

docker images

docker imagesで、ビルドしたイメージのImage IDを調べる。

docker tag 3da5154 yokoe/go-server-example:latest
docker push yokoe/go-server-example:latest

そのImage IDに対してlatestタグをつけてPushする。

Arukasにデプロイする

  • Arukasにログインして、「新しいアプリケーションを作成」を選ぶ
  • ImageにDockerhubのレポジトリのイメージ名を指定する
  • 公開レポジトリの場合はFreeプランで運用できる
  • 「アプリケーションを作成」する
  • Action欄で「起動」をするとインスタンスが立ち上がる
  • curlでアクセスしてみて動作確認する
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0