31 lines
1.2 KiB
Docker
31 lines
1.2 KiB
Docker
FROM golang:1.24-bookworm AS builder
|
|
|
|
RUN apt-get update && apt-get install -y git
|
|
|
|
# Клонируем репозиторий и собираем приложение
|
|
WORKDIR /outline-sdk
|
|
RUN git clone https://github.com/OutlineFoundation/outline-sdk.git .
|
|
WORKDIR /outline-sdk/x/examples/outline-cli
|
|
|
|
RUN CGO_ENABLED=1 go build -o /outline-cli -ldflags="-extldflags=-static" .
|
|
|
|
FROM debian:bookworm
|
|
RUN apt-get update && apt-get install -y curl wget
|
|
# Устанавливаем необходимые утилиты для работы сети и создаем пустой resolv.conf.head
|
|
RUN apt-get update && apt-get install -y iproute2 iptables && \
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
touch /etc/resolv.conf.head
|
|
|
|
# Копируем собранный бинарный файл из этапа сборки
|
|
COPY --from=builder /outline-cli /usr/local/bin/outline-cli
|
|
|
|
# Обертка-энтрипоинт: готовит DNS и запускает outline-cli
|
|
COPY entrypoint.sh /usr/local/bin/outline-entrypoint.sh
|
|
|
|
# Делаем бинарный файл исполняемым
|
|
RUN chmod +x /usr/local/bin/outline-cli /usr/local/bin/outline-entrypoint.sh
|
|
|
|
# Точка входа
|
|
ENTRYPOINT ["/usr/local/bin/outline-entrypoint.sh"]
|
|
|