FROM debian:bullseye AS lldap ARG DEBIAN_FRONTEND=noninteractive ARG TARGETPLATFORM RUN apt update && apt install -y wget WORKDIR /dim COPY bin/ bin/ COPY web/ web/ RUN mkdir -p target/ RUN mkdir -p /lldap/app RUN if [ "${TARGETPLATFORM}" = "linux/amd64" ]; then \ mv bin/amd64-bin/lldap target/lldap && \ mv bin/amd64-bin/migration-tool target/migration-tool && \ chmod +x target/lldap && \ chmod +x target/migration-tool && \ ls -la target/ . && \ pwd \ ; fi RUN if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \ mv bin/aarch64-bin/lldap target/lldap && \ mv bin/aarch64-bin/migration-tool target/migration-tool && \ chmod +x target/lldap && \ chmod +x target/migration-tool && \ ls -la target/ . && \ pwd \ ; fi RUN if [ "${TARGETPLATFORM}" = "linux/arm/v7" ]; then \ mv bin/armhf-bin/lldap target/lldap && \ mv bin/armhf-bin/migration-tool target/migration-tool && \ chmod +x target/lldap && \ chmod +x target/migration-tool && \ ls -la target/ . && \ pwd \ ; fi # Web and App dir COPY docker-entrypoint.sh /docker-entrypoint.sh COPY lldap_config.docker_template.toml /lldap/ RUN cp target/lldap /lldap/ && \ cp target/migration-tool /lldap/ && \ cp -R web/index.html \ web/pkg \ web/static \ /lldap/app/ RUN set -x \ && for file in $(cat /lldap/app/static/libraries.txt); do wget -P app/static "$file"; done \ && for file in $(cat /lldap/app/static/fonts/fonts.txt); do wget -P app/static/fonts "$file"; done \ && chmod a+r -R . FROM alpine:3.16 WORKDIR /app ENV UID=1000 ENV GID=1000 ENV USER=lldap RUN apk add --no-cache tini ca-certificates && \ addgroup -g $GID $USER && \ adduser \ --disabled-password \ --gecos "" \ --home "$(pwd)" \ --ingroup "$USER" \ --no-create-home \ --uid "$UID" \ "$USER" COPY --from=lldap --chown=$CONTAINERUSER:$CONTAINERUSER /lldap /app COPY --from=lldap --chown=$CONTAINERUSER:$CONTAINERUSER /docker-entrypoint.sh /docker-entrypoint.sh WORKDIR /app USER $USER ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"] CMD ["run", "--config-file", "/data/lldap_config.toml"]