|
1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # 多重构建,减少镜像大小
- # 构建:使用golang:1.15版本
- FROM registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/golang:1.18.4 as build
-
- # 容器环境变量添加,会覆盖默认的变量值
- ENV GO111MODULE=on
- ENV GOPROXY=https://goproxy.cn,direct
- ENV TZ="Asia/Shanghai"
- # 设置工作区
- WORKDIR /go/release
-
- # 把全部文件添加到/go/release目录
- ADD . .
-
- # 编译:把main.go编译成可执行的二进制文件,命名为zyos
- RUN GOOS=linux CGO_ENABLED=0 GOARCH=amd64 go build -tags netgo -ldflags="-s -w" -installsuffix cgo -o zyos main.go
-
- FROM ubuntu:xenial as prod
- LABEL maintainer="wuhanqin"
- ENV TZ="Asia/Shanghai"
-
- COPY static/html static/html
- COPY static/template static/template
-
- # 时区纠正
- RUN rm -f /etc/localtime \
- && ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
- && echo "Asia/Shanghai" > /etc/timezone
-
-
- # 优化内核参数
- #RUN sysctl -w net.ipv4.tcp_fin_timeout=15
- #RUN sysctl -w net.ipv4.tcp_tw_recycle=1
- #RUN sysctl -w net.ipv4.ip_local_port_range=1024 65535
- #RUN sysctl -p
- # 在build阶段复制可执行的go二进制文件app
- COPY --from=build /go/release/zyos ./zyos
-
- COPY --from=build /go/release/etc/cfg.yml /var/zyos/cfg.yml
-
- # 启动服务
- #CMD ["./zyos","-c","/var/zyos/cfg.yml"]
- CMD ["bash","-c","sysctl -w net.ipv4.ip_local_port_range='1024 65535' && sysctl -p && ./zyos -c /var/zyos/cfg.yml"]
-
|