Quick Start
go 프로그램 작성 #
예제) main.go
// 중략
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Server is running well.",
})
})
...
...
func main() {
r := setupRouter()
r.Run(":30001") // Listen and Serve
}
Dockerfile 작성 #
Dockerfile
# base image
FROM golang:alpine AS builder
# set environment variables
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64 \
APP_PORT=30001
# create app directory
RUN mkdir /app
WORKDIR /app
# copy go.mod and go.sum files
COPY go.mod go.sum main.go ./
# install dependencies
RUN go mod download
# copy app source code
COPY . .
# build the app
RUN go build -o main .
# app image
FROM scratch
COPY --from=builder /app/main .
# expose port
EXPOSE $APP_PORT
# command to run the app
CMD ["./main"]
login #
$ docker login
build #
$ docker build -t yhyacinth/myapp-go .
※ -t <hub 계정이름>/<hub 리포지토리 이름>:<태그>
tagging #
$ docker tag myapp-go:latest yhyacinth/myapp-go:v0.1
push #
$ docker push yhyacinth/myapp-go:v0.1
Show Comments