tgoop.com/goproglib/5921
Create:
Last Update:
Last Update:
Компактные образы, быстрая доставка, лёгкий деплой — вот что получает разработчик Go-приложений, если правильно использовать Docker. Разберём простые способы контейнеризации.
1. Сборка через Dockerfile
Этот подход проще в реализации: весь процесс сборки и упаковки идёт прямо внутри контейнера.
FROM iron/go:dev
WORKDIR /app
ENV SRC_DIR=/go/src/github.com/your/repo
ADD . $SRC_DIR
RUN cd $SRC_DIR; go build -o myapp; cp myapp /app/
ENTRYPOINT ["./myapp"]
2. Сборка вне Dockerfile
Разделение этапов сборки и упаковки — это более чистый и производительный способ.
Сначала сборка бинарного файла:
docker run --rm -v "$PWD":/go/src/github.com/your/repo -w /go/src/github.com/your/repo iron/go:dev go build -o myapp
docker build -t $USERNAME/$IMAGE:latest .
Затем минимальный Dockerfile:
FROM iron/go
WORKDIR /app
ADD myapp /app/
ENTRYPOINT ["./myapp"]
3. Запуск (одинаков для обоих подходов)
docker build -t your/image .
docker run --rm -p 8080:8080 your/image