Skip to content

Instantly share code, notes, and snippets.

@shvargon
Created June 9, 2022 09:30
Show Gist options
  • Select an option

  • Save shvargon/27468f7fda95d073097b6d1b7ec4abae to your computer and use it in GitHub Desktop.

Select an option

Save shvargon/27468f7fda95d073097b6d1b7ec4abae to your computer and use it in GitHub Desktop.
docker объяснения
# Первая стадия создание образа который копирует исходник wsdd
FROM python:3.10.5-alpine3.15 as builder
# указываем папку в которой работаем тоже самое что cd
WORKDIR /app
# ставим git
RUN apk add --no-cache git
# клонируем образ
RUN git clone --depth=1 https://github.com/christgau/wsdd.git
# вторая стадия запуск wsdd
FROM python:3.10.5-alpine3.15
# указываем папку в которой работаем тоже самое что cd
WORKDIR /app
# копируем файд wsdd из первой стадии
# Нужно для того чтобы git тут не ставить
# и не удалить другие ненужные файлы
COPY --from=builder /app/wsdd/src/wsdd.py /app
# копируем файл который помогает запускать
COPY ./entrypoint.sh /
# создаем группу wsdd
RUN addgroup -g 1001 wsdd &&\
# создаем юзера wsdd
adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup wsdd \
--no-create-home \
--uid 1001 \
wsdd && \
# указываем владельца для папки
chown -R wsdd:wsdd "$(pwd)" && \
# указываем права рекурсивно -r-x--x---
# то есть имеем право читать и исполнять из под рута
# тк должно запускаться от wsdd
chmod -R 510 /entrypoint.sh /app
# метки для инспекта
LABEL version="1.0" \
maintainer="animekazna@gmail.com"
# открываем порты
EXPOSE 3702 5357
# точка входа
ENTRYPOINT [ "/entrypoint.sh" ]
#!/bin/sh
# если хост не указан выходим
( : ${HOST?"pls pass -e HOST=somehost"} ) || exit 1
ARGS=""
# подставляем аргументы
[[ -z "${WORKGROUP}" ]] || ARGS="$ARGS --workgroup $WORKGROUP"
[[ -z "${DOMAIN}" ]] || ARGS="$ARGS --domain $DOMAIN"
# запскаем $@ в конце передает аргументы
exec python /app/wsdd.py --hostname ${HOST} ${ARGS} $@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment