Created
October 3, 2018 12:08
-
-
Save kirill-shtrykov/070b5e8b4c9e893d9527f7eace1aa3ce to your computer and use it in GitHub Desktop.
Golang example Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Собираем в одном контейнере | |
FROM golang as builder | |
# Копируем исходники | |
ADD . /go/src/application/ | |
# Топаем туда и ставим либы и прочее | |
RUN cd /go/src/application/ && go get . | |
# Собираем и ставим | |
RUN go install application | |
# Создаем окончательный контейнер с приложением | |
FROM alpine | |
# Ставим все что нам нужно, например серты для работы HTTPS | |
RUN apk update && apk add ca-certificates | |
# Линкуем либы, в альпине был какой-то косяк с LIBC | |
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 | |
# Вот тут мы и копируем наш готовый бинарник из контейнера для сборки | |
COPY --from=builder /go/bin/application /bin | |
# Указываем энтрипоинт (можно враппер написать) | |
ENTRYPOINT /bin/application | |
# И выбрасываем наружу порты | |
EXPOSE 8080 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment