镜像linux
端口映射golang
备注docker
文章使用到的软件:架构
目标工具
构建Dockerfileui
FROM golang as build # 配置模块代理 ENV GOPROXY=https://goproxy.cn,direct ADD . /www # 进入工做目录 WORKDIR /www # 打包鲲鹏架构 # RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o go_server # 打包AMD64架构 RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o go_server # 设置时区,未验证 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone FROM alpine:3.7 # 配置国内源 RUN echo "http://mirrors.aliyun.com/alpine/v3.7/main/" > /etc/apk/repositories RUN apk update RUN apk add ca-certificates # dns RUN echo "hosts: files dns" > /etc/nsswitch.conf # 建立文件夹(根据我的选择) RUN mkdir -p /www/conf /www/runtime/ WORKDIR /www # 复制打包的Go文件到系统用户可执行程序目录下 COPY --from=build /www/go_server /usr/bin/go_server # 复制程序配置文件(根据我的选择) ADD ./conf /www/conf # 设置Go程序权限 RUN chmod +x /usr/bin/go_server # 容器启动时运行的命令 ENTRYPOINT ["go_server"]
打包Docker镜像spa
docker build --rm -t temp/go-test .
部署Go程序代理
我是经过Portainer来运行的,可视化的容器镜像的图形管理工具rest
version: '2' services: go: # 镜像 image: temp/go-test:latest # 自动启动 restart: always ports: # 端口映射:左边为宿机端口、右边为容器端口 - 8081:8081
方式二:code
docker run -d -p 8081:8081 --name go_test --restart=always temp/go-test