dash/contrib/containers/deploy/Dockerfile.GitHubActions.Dispatch
2024-08-12 11:58:20 +07:00

81 lines
2.0 KiB
Docker

# syntax=docker/dockerfile:1.3
FROM --platform=$BUILDPLATFORM ubuntu:focal as builder
RUN apt-get update && \
apt-get -y install --no-install-recommends \
automake \
autotools-dev \
bsdmainutils \
build-essential \
ca-certificates \
curl \
g++-arm-linux-gnueabihf \
libtool \
pkg-config \
python3 \
wget \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /home/dash
COPY . .
ARG TARGETPLATFORM
RUN case "$TARGETPLATFORM" in \
"linux/arm64") make HOST=arm-linux-gnueabihf -C depends -j`nproc | awk '{x=$1/2; print x}'` ;; \
"linux/amd64") make HOST=x86_64-pc-linux-gnu -C depends -j`nproc | awk '{x=$1/2; print x}'` ;; \
*) exit 1 ;; \
esac
RUN ./autogen.sh && \
case "$TARGETPLATFORM" in \
"linux/arm64") ./configure --prefix=`pwd`/depends/arm-linux-gnueabihf ;; \
"linux/amd64") ./configure --prefix=`pwd`/depends/x86_64-pc-linux-gnu ;; \
esac
RUN make -j`nproc | awk '{x=$1/2; print x}'` && make install
RUN mkdir built-target && \
case "$TARGETPLATFORM" in \
"linux/arm64") cp depends/arm-linux-gnueabihf/bin/dash* /home/dash/built-target ;; \
"linux/amd64") cp depends/x86_64-pc-linux-gnu/bin/dash* /home/dash/built-target ;; \
esac
FROM ubuntu:focal
LABEL maintainer="Dash Developers <dev@dash.org>"
LABEL description="Dockerised DashCore"
ARG USER_ID
ARG GROUP_ID
ARG TAG
ENV HOME="/home/dash"
# add user with specified (or default) user/group ids
ENV USER_ID="${USER_ID:-1000}"
ENV GROUP_ID="${GROUP_ID:-1000}"
RUN groupadd -g ${GROUP_ID} dash && \
useradd -u ${USER_ID} -g dash -s /bin/bash -m -d /home/dash dash && \
mkdir /home/dash/.dashcore && \
chown ${USER_ID}:${GROUP_ID} -R /home/dash
RUN apt-get update && \
apt-get -y install --no-install-recommends \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /home/dash/built-target/dash* /usr/local/bin
USER dash
VOLUME ["/home/dash"]
COPY docker/docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
EXPOSE 9998 9999 19998 19999
WORKDIR /home/dash