-
Notifications
You must be signed in to change notification settings - Fork 62
/
Copy pathDockerfile
48 lines (34 loc) · 1.62 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
ARG BASE_IMAGE=debian:buster-slim
FROM --platform=$TARGETPLATFORM ${BASE_IMAGE} AS builder
ARG TARGETPLATFORM
# Install necessary tools for diagnostics and JDK download
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl net-tools lsof netcat procps less \
&& if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
export JDK_ARCH=x64; \
else \
export JDK_ARCH=aarch64; \
fi \
&& echo "JDK_ARCH is set to ${JDK_ARCH}" \
&& curl --retry 5 -S -L -O https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-${JDK_ARCH}_bin.tar.gz \
&& tar -zxvf openjdk-17.0.2_linux-${JDK_ARCH}_bin.tar.gz \
&& rm -rf openjdk-17.0.2_linux-${JDK_ARCH}_bin.tar.gz \
&& rm -rf /var/lib/apt/lists/*
COPY bifromq-*-standalone.tar.gz /
RUN mkdir /bifromq && tar -zxvf /bifromq-*-standalone.tar.gz --strip-components 1 -C /bifromq \
&& rm -rf /bifromq-*-standalone.tar.gz
FROM --platform=$TARGETPLATFORM ${BASE_IMAGE}
RUN groupadd -r -g 1000 bifromq \
&& useradd -r -m -u 1000 -g bifromq bifromq \
&& apt-get update \
&& apt-get install -y --no-install-recommends net-tools lsof netcat procps less \
&& rm -rf /var/lib/apt/lists/*
COPY --chown=bifromq:bifromq --from=builder /jdk-17.0.2 /usr/share/jdk-17.0.2
COPY --chown=bifromq:bifromq --from=builder /bifromq /home/bifromq/
ENV JAVA_HOME /usr/share/jdk-17.0.2
ENV PATH /usr/share/jdk-17.0.2/bin:$PATH
WORKDIR /home/bifromq
USER bifromq
# Set common command aliases
RUN echo "alias ll='ls -al'" >> ~/.bashrc
EXPOSE 1883 1884 80 443
CMD ["./bin/standalone.sh", "start", "-fg"]