Слияние кода завершено, страница обновится автоматически
# Compile stage
# 这一步是为了使用go容器对我们的代码进行编译
FROM golang:1.13.8 AS build-env
# 以上面的镜像为基础,把代码搞里头
ADD . /distill-base
# 进入工作目录
WORKDIR /distill-base
# 设定参数
ENV GOOS linux
ENV GOARCH amd64
ENV CGO_ENABLED=0
ENV GOFLAGS "-ldflags=-w -ldflags=-s"
ENV GO111MODULE=on
# 为避免编译时再down一遍相关依赖包,我们启动了vendor
ENV GOFLAGS=" -mod=vendor"
# 这里设置的是代理,建议大家还是不要用我的,自己去goproxy.io上面申请自己的玩一下
ENV GOPROXY=https://yz271544:UbFWoA20KLRShpM@goproxy.io,direct
# 这一行是真正的编译
RUN go build -o /brun brun/main.go
# Final stage
# 下面才是真正把编译后的程序打成一个新的镜像的过程,为尽量小一些,我们采用了各方建议的debian,其他的也行,看个人爱好
FROM debian:buster
#FROM centos:centos8
# 暴露端口
EXPOSE 18185
# 设定工作目录
WORKDIR /
# 为我们调试方便,安装一下下面的内容,方便我们可以exec到容器后,可以使用基本的linux操作命令
#RUN dnf -y install coreutils --allowerasing
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
RUN apt-get install -y coreutils
# 好了,从编译容器中,将配置目录复制过来
COPY --from=build-env /distill-base/config /config
# 再从编译容器中,将编译完的程序复制过来
COPY --from=build-env /brun /
# 设定权限
RUN chmod +x /brun
# 设定启动命令
CMD ["/brun"]
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )