drone/Dockerfile
liupeng 50135c7231
Some checks failed
continuous-integration/drone/push Build is failing
docker升级
2024-03-05 18:49:28 +08:00

45 lines
1.6 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# syntax=docker/dockerfile:1.2
FROM golang:1.22-alpine as base
ENV GO111MODULE on
ENV GOPROXY=https://goproxy.io
WORKDIR /src
# 通过提前运行go mod download可以使用cache编译避免每次编译都下载加快编译速度
# COPY go.mod go.sum ./
RUN --mount=type=cache,target=/go/pkg/mod/ \
--mount=type=bind,source=/go.sum,target=/go.sum \
--mount=type=bind,source=/go.mod,target=/go.mod \
go mod download -x
COPY . .
FROM base AS build-client
RUN --mount=type=cache,target=/go/pkg/mod/ \
GOOS=linux CGO_ENABLED=0 go build -o /bin/adapt -ldflags="-w -s"
# 生成alpine部署容器
FROM scratch as client
LABEL MAINTAINER='LIU Peng<liupeng@daymele.com>'
WORKDIR /
COPY --from=build-client /bin/adapt /adapt
# 健康检测
ADD ./hc.sh /root/healthcheck.sh
HEALTHCHECK --start-period=60s --interval=15s --timeout=5s --retries=3 CMD /bin/ash /root/healthcheck.sh
# 时区处理(方法一:需要提前准备下两条scratch和alpine都可以使用)
# tar cfz zoneinfo.tar.gz /usr/share/zoneinfo
# cp /usr/share/zoneinfo/PRC PRC
ADD PRC /etc/localtime
ADD zoneinfo.tar.gz /
# 设置时区为上海
#RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
#RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
# && echo "Asia/Shanghai" > /etc/timezone \
# && apk del tzdata \
# && rm -rf /var/cache/apk/*
ENTRYPOINT ["/adapt","-port","9000","-conf","/conf/daymele.conf"]
EXPOSE 9000
# docker image prune 删除悬虚镜像
# docker run --name res -d -p 7000:7011 -v /mnt/resdata:/data dev.daymele.com:5000/res --restart always