1. 程式人生 > 實用技巧 >基於alpine docker映象應用的參考Dockerfile配置

基於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