docker打包部署beego項(xiàng)目
1
在項(xiàng)目的跟目錄上創(chuàng)建DockerFile文件
# 基礎(chǔ)鏡像
FROM golang:alpine AS builder
# 維護(hù)者
MAINTAINER liwei<php.wei.li@gmail.com>
#為我們的鏡像設(shè)置必要的環(huán)境變量
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64
# docker build 時執(zhí)行命令 - 創(chuàng)建目錄
RUN mkdir -p $GOPATH/src/opt/app
# 工作目錄 欧宜,將工作目錄設(shè)置為
WORKDIR $GOPATH/src/opt/app
#將DockerFile文件所在目錄下的所有文件復(fù)制到指定位置
COPY . $GOPATH/src/opt/app
# 下載依賴信息
RUN go mod download
#將我們的代碼編譯成二進(jìn)制可執(zhí)行文件webapp
RUN go build -o beegowebapp .
# 需要運(yùn)行的命令
ENTRYPOINT ["./beegowebapp"]
2 執(zhí)行docker打包鏡像
docker build -t beegowebapp beegowebapp .
3 執(zhí)行 查看本地鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
beegowebapp latest cb10263cbfbe 29 minutes ago 522MB
docker images
4 運(yùn)行該鏡像
docker run -d -p 8088:8080 --name beegowebapp beegowebapp
5 編寫docker-compose.yml 文件
version: '3'
services:
world:
#指定容器名稱
container_name: world
image: beegowebapp
ports:
- "8088:8080"
volumes:
- $GOPATH/src/opt/app:$GOPATH/src/opt/app:rw
6 運(yùn)行docker-compose up 啟動服務(wù)
docker-compose -f docker-compose.yml up -d world