dash/contrib/containers/deploy/Dockerfile.GitHubActions.Dispatch

81 lines
2.0 KiB
Docker
Raw Normal View History

ci: build on-demand docker images for testing on devnets (#4667) * ci: build alpha action * ci: use self-hosted runner * ci: build faster * ci: multicore dash build * chore: copy build, dockerize and push * chore: dockerize build * chore: remove unnecessary cachedir and checkout steps * chore: disable qemu * chore: remove buildx steps now included in AMI * chore: move binaries in to place for second stage copy * fix: runner using incorrect build driver * chore: debug builder info * chore: more detailed debug * chore: install qemu and buildx in actions * fix: indentation * fix: remove debug code * feat: multi-arch cross-compiling dockerfile * chore: remove unnecessary docker layers * chore: add debug output * chore: dump context * fix: use event inputs tag for docker_meta * chore: dump context again * fix: context reference syntax * feat: attempt to use gitian builder * chore: ff changes from other branches * chore: disable macOS build * Revert "chore: ff changes from other branches" This reverts commit daece1c50597e603f4f6027bf93240a0771eb5d3. * chore: restore GHA changes to fix incorrect merge * chore: remove duplicate code * chore: bump buildx version to latest * chore: try to build without signing * chore: setup tmate to find build * chore: run tmate on failure * fix: invalid path to binaries on copy * chore: remove unnecessary GPG steps * chore: replace strophy with dashpay * fix: gha cache not providing speedup * Update .github/workflows/release_alpha.yml Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-04 00:24:06 +02:00
# 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 /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* /dash/built-target ;; \
"linux/amd64") cp depends/x86_64-pc-linux-gnu/bin/dash* /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 /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 /dash dash && \
mkdir /dash/.dashcore && \
chown dash:dash -R /dash
RUN apt-get update && \
apt-get -y install --no-install-recommends \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /dash/built-target/dash* /usr/local/bin
USER dash
VOLUME ["/dash"]
COPY docker/docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
EXPOSE 9998 9999 19998 19999
WORKDIR /dash