基于alpine docker镜像应用的参考Dockerfile配置
alpine 镜像比较小的特点,特别适合基于容器的应用部署,以下是一些参考配置,可以
用来加速构建以及方便使用
几个需要解决的问题
- 安装包加速(已知问题)解决方法,可以修改为aliyun的镜像加速
- 时区问题,需要安装时区包
- 进程管理工具,需要安装 procps
参考dockerfile
- 一个golang 运行项目
FROM golang:1.15-alpine AS build-env
WORKDIR /go/src/app
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.cn
COPY . .
RUN set -x \
&& /bin/sed -i 's,http://dl-cdn.alpinelinux.org,https://mirrors.aliyun.com,g' /etc/apk/repositories \
&& apk update && apk add git \
&& go build
FROM alpine:latest
RUN set -x \
&& /bin/sed -i 's,http://dl-cdn.alpinelinux.org,https://mirrors.aliyun.com,g' /etc/apk/repositories \
&& apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk update && apk add ca-certificates mongodb-tools procps mysql-client redis postgresql-client && rm -rf /var/cache/apk/*
COPY --from=build-env /go/src/app/gobackup /usr/bin/gobackup
COPY gobackup.yml /etc/gobackup/gobackup.yml
ENTRYPOINT [ "gobackup" ]
- 简单说明
添加了阿里云的加速,同时安装了时区包,以及procps
参考资料
https://pkgs.alpinelinux.org/packages
https://developer.aliyun.com/mirror/alpine