mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
Update Dockerfile
This commit is contained in:
parent
dba4040954
commit
8ffdb27b7b
91
Dockerfile
91
Dockerfile
@ -1,5 +1,16 @@
|
|||||||
# Get rust image
|
# Create our development image
|
||||||
FROM rust:1.62-slim-bullseye
|
FROM rust:1.62-slim-bullseye AS builder
|
||||||
|
|
||||||
|
# Set env for our builder
|
||||||
|
ENV CARGO_TERM_COLOR: always
|
||||||
|
ENV RUSTFLAGS: -Ctarget-feature=+crt-static
|
||||||
|
ENV OPENSSL_INCLUDE_DIR: "/usr/include/openssl/"
|
||||||
|
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc
|
||||||
|
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
|
||||||
|
|
||||||
|
### Only enable if building non-native architecture
|
||||||
|
#ENV OPENSSL_LIB_DIR: "/usr/lib/arm-linux-gnueabihf/"
|
||||||
|
#ENV OPENSSL_LIB_DIR: "/usr/lib/aarch64-linux-gnu/"
|
||||||
|
|
||||||
# Get develop package and npm
|
# Get develop package and npm
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
@ -17,19 +28,44 @@ RUN apt update && \
|
|||||||
RUN cargo install wasm-pack && \
|
RUN cargo install wasm-pack && \
|
||||||
npm install -g rollup
|
npm install -g rollup
|
||||||
|
|
||||||
|
### aarch64 build
|
||||||
|
#RUN dpkg --add-architecture arm64 && \
|
||||||
|
# apt update && \
|
||||||
|
# apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross libssl-dev:arm64 && \
|
||||||
|
# apt clean && \
|
||||||
|
# rm -rf /var/lib/apt/lists/*
|
||||||
|
### add arm64 target
|
||||||
|
#RUN rustup target add aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
|
### armhf build
|
||||||
|
#RUN dpkg --add-architecture arm64 && \
|
||||||
|
# apt update && \
|
||||||
|
# apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross libssl-dev:armhf && \
|
||||||
|
# apt clean && \
|
||||||
|
# rm -rf /var/lib/apt/lists/*
|
||||||
|
### add armhf target
|
||||||
|
#RUN rustup target add rustup target add armv7-unknown-linux-gnueabihf
|
||||||
|
|
||||||
COPY . /lldap-src
|
COPY . /lldap-src
|
||||||
WORKDIR /lldap-src
|
WORKDIR /lldap-src
|
||||||
# Compiling application, take your time
|
# Compiling application, take your time
|
||||||
RUN cargo build --release -p lldap -p migration-tool && \
|
### amd64
|
||||||
app/build.sh
|
RUN cargo build --target=x86_64-unknown-linux-gnu --release -p lldap -p migration-tool
|
||||||
|
### arm64
|
||||||
|
#RUN cargo build --target=aarch64-unknown-linux-gnu --release -p lldap -p migration-tool
|
||||||
|
### armhf
|
||||||
|
#RUN cargo build --target=armv7-unknown-linux-gnueabihf --release -p lldap -p migration-tool
|
||||||
|
|
||||||
|
### Build frontend
|
||||||
|
RUN app/build.sh
|
||||||
# Prepare our application path
|
# Prepare our application path
|
||||||
RUN mkdir -p /lldap/app
|
RUN mkdir -p /lldap/app
|
||||||
# Web and App dir
|
# Web and App dir
|
||||||
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
COPY docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
COPY lldap_config.docker_template.toml /lldap/
|
COPY lldap_config.docker_template.toml /lldap/
|
||||||
# The applications
|
# The applications
|
||||||
RUN cp target/release/lldap /lldap/ && \
|
RUN cp target/*/release/lldap /lldap/lldap && \
|
||||||
cp target/release/migration-tool /lldap/ && \
|
cp target/*/release/migration-tool /lldap/migration-tool && \
|
||||||
cp -R web/index.html \
|
cp -R web/index.html \
|
||||||
web/pkg \
|
web/pkg \
|
||||||
web/static \
|
web/static \
|
||||||
@ -45,21 +81,30 @@ RUN set -x \
|
|||||||
&& chmod a+r -R .
|
&& chmod a+r -R .
|
||||||
|
|
||||||
|
|
||||||
### aarch64 build
|
|
||||||
#RUN dpkg --add-architecture arm64 && \
|
|
||||||
# apt update && \
|
|
||||||
# apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross libssl-dev:arm64 && \
|
|
||||||
# apt clean && \
|
|
||||||
# rm -rf /var/lib/apt/lists/*
|
|
||||||
### add arm64 target
|
|
||||||
#RUN rustup target add aarch64-unknown-linux-gnu
|
|
||||||
### armhf build
|
|
||||||
#RUN dpkg --add-architecture arm64 && \
|
|
||||||
# apt update && \
|
|
||||||
# apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross libssl-dev:armhf && \
|
|
||||||
# apt clean && \
|
|
||||||
# rm -rf /var/lib/apt/lists/*
|
|
||||||
### add armhf target
|
|
||||||
#RUN rustup target add rustup target add armv7-unknown-linux-gnueabihf
|
|
||||||
|
|
||||||
CMD ["bash"]
|
### Final image
|
||||||
|
FROM alpine:3.16
|
||||||
|
WORKDIR /app
|
||||||
|
ENV UID=1000
|
||||||
|
ENV GID=1000
|
||||||
|
ENV USER=lldap
|
||||||
|
RUN echo http://mirror.math.princeton.edu/pub/alpinelinux/edge/testing/ >> /etc/apk/repositories && \
|
||||||
|
apk add --no-cache tini ca-certificates bash gosu && \
|
||||||
|
addgroup -g $GID $USER && \
|
||||||
|
adduser \
|
||||||
|
--disabled-password \
|
||||||
|
--gecos "" \
|
||||||
|
--home "$(pwd)" \
|
||||||
|
--ingroup "$USER" \
|
||||||
|
--no-create-home \
|
||||||
|
--uid "$UID" \
|
||||||
|
"$USER" && \
|
||||||
|
mkdir -p /data && \
|
||||||
|
chown $USER:$USER /data
|
||||||
|
### Copy out the binary and web from builder
|
||||||
|
COPY --from=builder --chown=$CONTAINERUSER:$CONTAINERUSER /lldap /app
|
||||||
|
COPY --from=builder --chown=$CONTAINERUSER:$CONTAINERUSER /docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
VOLUME ["/data"]
|
||||||
|
WORKDIR /app
|
||||||
|
ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]
|
||||||
|
CMD ["run", "--config-file", "/data/lldap_config.toml"]
|
||||||
|
Loading…
Reference in New Issue
Block a user