Split the Dockerfile into a build stage (with headers/compilers) and a lean app stage with only runtime libraries, and strip binaries on install. run.sh now defaults to dogecoin-qt:latest when no image is given. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUDyiicQWXr4XVmuJEXvn3
58 lines
2.1 KiB
Docker
58 lines
2.1 KiB
Docker
# syntax=docker/dockerfile:1
|
|
# -------------------------------------
|
|
FROM ubuntu:jammy AS build
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential libtool autotools-dev automake pkg-config bsdmainutils git autogen make gawk file \
|
|
libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev \
|
|
libevent-dev libssl-dev \
|
|
libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler \
|
|
libqrencode-dev \
|
|
libxkbcommon-x11-0 libxcb-xinerama0 libx11-xcb1 libx11-xcb-dev libqt5x11extras5 \
|
|
libdb5.3++-dev libdb5.3++ libdb5.3-dev \
|
|
libzmq3-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Miniupnpc
|
|
# RUN apt-get install -y libminiupnpc-dev
|
|
|
|
ADD https://github.com/dogecoin/dogecoin.git /tmp/dogecoin
|
|
|
|
WORKDIR "/tmp/dogecoin"
|
|
RUN ./autogen.sh >autogen.log
|
|
RUN ./configure --with-gui -prefix=/opt/dogecoin/ >configure.log
|
|
|
|
WORKDIR "/tmp/dogecoin"
|
|
RUN make -j4 && make install-strip
|
|
|
|
# -------------------------------------
|
|
FROM ubuntu:jammy AS app
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Runtime libraries only (headers/compilers stay in the build stage)
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
bc \
|
|
libboost-system1.74.0 libboost-filesystem1.74.0 libboost-chrono1.74.0 libboost-program-options1.74.0 libboost-thread1.74.0 \
|
|
libevent-2.1-7 libevent-pthreads-2.1-7 libssl3 \
|
|
libqt5gui5 libqt5core5a libqt5dbus5 libqt5x11extras5 libqt5widgets5 libqt5printsupport5 \
|
|
libprotobuf23 \
|
|
libqrencode4 \
|
|
libxkbcommon-x11-0 libxcb-xinerama0 libx11-xcb1 \
|
|
libdb5.3++ \
|
|
libzmq5 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=build /opt/dogecoin /opt/dogecoin
|
|
RUN rm /opt/dogecoin/bin/bench_dogecoin*
|
|
RUN rm /opt/dogecoin/bin/test_dogecoin*
|
|
|
|
RUN useradd -m doge
|
|
ENV PATH=$PATH:/opt/dogecoin/bin
|
|
|
|
RUN su - -s /usr/bin/bash doge
|
|
WORKDIR "/home/doge"
|
|
|
|
COPY app/*.sh /app/
|
|
CMD ["/app/app.sh"]
|