mkdir goapp && cd $_go 파일을 생성(goapp.go)
package main
import (
"fmt"
"time"
)
func main() {
for {
fmt.Println("Hello World")
time.Sleep(10 * time.Second)
}
}
golang 설치
다운로드
wget https://golang.org/dl/go1.19.1.linux-amd64.tar.gz
압축해제
sudo tar -xzf go1.19.1.linux-amd64.tar.gz -C /usr/local
압축해제된 go/bin 디렉토리를 PATH에 등록(명령어 또는 파일을 아무 곳에서나 사용할 수 있게 하기 위해서)
sudo nano /etc/profile 명령을 수행하고 아래 내용 추가
export PATH=$PATH:/usr/local/go/bin

위의 내용을 추가한 후 저장하고 source /etc/profile
버전 확인
go version

go build 파일명go build goapp.go
./파일명에서 확장자를 제거한 부분./goapp
Dockerfile을 생성해서 작성
FROM golang:1.15-alpine3.12 AS gobuilder-stage
WORKDIR /usr/src/goapp
COPY goapp.go .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /usr/local/bin/gostart
FROM scratch AS runtime-stage
COPY --from=gobuilder-stage /usr/local/bin/gostart /usr/local/bin/gostart
CMD ["/usr/local/bin/gostart"]
docker build -t 이미지이름:태그 [-f Dockerfile 경로] .docker build -t goapp:1.0 .docker images
docker run --name goapp-deploy goapp:1.0