telegram-bot-api-build/Dockerfile
JRoot Junior 13e606c76b
Refactor entrypoint script for improved flexibility
Change the shebang to use env, add helper functions to handle environment variables, and dynamically append command arguments. This improves script flexibility and ensures critical variables are set or loaded from files.
2024-10-21 02:01:29 +03:00

32 lines
1.2 KiB
Docker

ARG ALPINE_VERSION=latest
FROM alpine:${ALPINE_VERSION} AS build
ENV CXXFLAGS=""
WORKDIR /usr/src/telegram-bot-api
RUN apk add --no-cache --update alpine-sdk linux-headers git zlib-dev openssl-dev gperf cmake
COPY telegram-bot-api /usr/src/telegram-bot-api
ARG nproc=1
RUN mkdir -p build \
&& cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=.. .. \
&& cmake --build . --target install -j ${nproc} \
&& strip /usr/src/telegram-bot-api/bin/telegram-bot-api
FROM alpine:${ALPINE_VERSION}
ENV TELEGRAM_WORK_DIR="/var/lib/telegram-bot-api" \
TELEGRAM_TEMP_DIR="/tmp/telegram-bot-api"
RUN apk add --no-cache --update openssl libstdc++
COPY --from=build /usr/src/telegram-bot-api/bin/telegram-bot-api /usr/local/bin/telegram-bot-api
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN addgroup -g 101 -S telegram-bot-api \
&& adduser -S -D -H -u 101 -h ${TELEGRAM_WORK_DIR} -s /sbin/nologin -G telegram-bot-api -g telegram-bot-api telegram-bot-api \
&& chmod +x /docker-entrypoint.sh \
&& mkdir -p ${TELEGRAM_WORK_DIR} ${TELEGRAM_TEMP_DIR} \
&& chown telegram-bot-api:telegram-bot-api ${TELEGRAM_WORK_DIR} ${TELEGRAM_TEMP_DIR}
EXPOSE 8081/tcp 8082/tcp
ENTRYPOINT ["/docker-entrypoint.sh"]