20 Commits

Author SHA1 Message Date
Seth For Privacy
c0187089f4 Optimize final image: runtime libs instead of -dev, pin base image
The final runtime stage installed full -dev packages (headers, static
archives, build-time deps) when only the runtime shared libraries are
needed. Replace them with the runtime-only equivalents, verified via
`ldd` on the built p2pool binary against the pinned base.

Changes:
- Final stage: install runtime libs instead of -dev packages
  (libuv1t64, libzmq5, libsodium23, libpgm-5.3-0t64, libnorm1t64,
  libgssapi-krb5-2, libcurl4t64, libidn2-0). Note the t64 names on
  Ubuntu 24.04 due to the 64-bit time_t transition.
- Pin both stages to ubuntu:24.04 (current LTS) instead of
  ubuntu:latest for reproducible builds. Renovate's docker manager
  keeps this current.
- Add --depth 1 --shallow-submodules to the git clone for faster,
  lighter source checkout.

Local verification (native arm64):
- Build succeeds (exit 0).
- `docker run --rm p2pool:test --help` prints "P2Pool v4.17" + usage.
- `ldd` on the binary in the final image: all libs resolve, none missing.
- Image size: 317MB -> 188MB (-129MB, -41%).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 20:57:26 -04:00
Seth For Privacy
a36f7e0a2f Update GitHub Actions badges in README
Updated GitHub Actions badges to reflect new repository links.
2026-06-21 14:02:50 -04:00
Seth For Privacy
0518013758 Update P2POOL_BRANCH to version v4.17 2026-06-21 14:01:02 -04:00
Seth For Privacy
24185da98c Merge pull request #155 from sethforprivacy/renovate/actions-checkout-7.x
Update actions/checkout action to v7
2026-06-18 15:59:53 -04:00
renovate[bot]
a0610a6215 Update actions/checkout action to v7 2026-06-18 19:52:11 +00:00
Seth For Privacy
f8867c29bb Merge pull request #154 from hundehausen/bump/p2pool-v4.16
Bump P2Pool to version 4.16
2026-06-15 07:54:16 -04:00
hundehausen
6b67d40ec2 Update P2POOL_BRANCH to version 4.16 2026-06-13 18:45:10 +02:00
Seth For Privacy
3d1374df75 Merge pull request #153 from sethforprivacy/renovate/docker-setup-buildx-action-4.x
Update docker/setup-buildx-action action to v4.1.0
2026-05-23 16:23:41 -04:00
renovate[bot]
599c70f413 Update docker/setup-buildx-action action to v4.1.0 2026-05-23 20:20:53 +00:00
Seth For Privacy
9303676316 Merge pull request #152 from sethforprivacy/renovate/docker-login-action-4.x
Update docker/login-action action to v4.2.0
2026-05-23 16:20:22 -04:00
Seth For Privacy
c20c54e17d Merge pull request #151 from sethforprivacy/renovate/docker-build-push-action-7.x
Update docker/build-push-action action to v7.2.0
2026-05-23 16:20:05 -04:00
renovate[bot]
b3dca32ba0 Update docker/login-action action to v4.2.0 2026-05-23 15:50:07 +00:00
renovate[bot]
f96e9166dc Update docker/build-push-action action to v7.2.0 2026-05-23 15:50:03 +00:00
Seth For Privacy
1ec1d51cfb Update P2POOL_BRANCH to version 4.15.1 2026-05-12 11:01:18 -04:00
Seth For Privacy
d2bed819bd Bump to v4.15 2026-05-01 18:46:30 -04:00
Seth For Privacy
ea2462edf8 Merge pull request #150 from sethforprivacy/renovate/docker-build-push-action-7.x
Update docker/build-push-action action to v7.1.0
2026-04-10 12:22:11 -04:00
renovate[bot]
d30e72c868 Update docker/build-push-action action to v7.1.0 2026-04-10 14:04:03 +00:00
Seth For Privacy
943566c666 Delete .github/dependabot.yml 2026-04-04 09:56:58 -04:00
Seth For Privacy
2afef48805 Merge pull request #148 from sethforprivacy/renovate/docker-login-action-4.x
Update docker/login-action action to v4.1.0
2026-04-04 09:56:35 -04:00
renovate[bot]
9c9a34f0d3 Update docker/login-action action to v4.1.0 2026-04-02 18:35:07 +00:00
5 changed files with 23 additions and 32 deletions

View File

@@ -1,11 +0,0 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
groups:
dependency-updates:
patterns:
- "*"

View File

@@ -37,14 +37,14 @@ jobs:
echo "DIGEST_NAME=amd64" >> $GITHUB_ENV echo "DIGEST_NAME=amd64" >> $GITHUB_ENV
- -
name: Set up Docker Buildx name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4.0.0 uses: docker/setup-buildx-action@v4.1.0
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v7
- -
name: Test build of image name: Test build of image
id: build id: build
uses: docker/build-push-action@v7.0.0 uses: docker/build-push-action@v7.2.0
with: with:
push: false push: false
load: true load: true

View File

@@ -40,20 +40,20 @@ jobs:
${{ env.GHCR_REPO }} ${{ env.GHCR_REPO }}
- -
name: Set up Docker Buildx name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4.0.0 uses: docker/setup-buildx-action@v4.1.0
- -
name: Login to GitHub Container Registry name: Login to GitHub Container Registry
uses: docker/login-action@v4.0.0 uses: docker/login-action@v4.2.0
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- -
name: Checkout repository name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v7
- -
name: Build and and push by digest name: Build and and push by digest
uses: docker/build-push-action@v7.0.0 uses: docker/build-push-action@v7.2.0
id: build id: build
with: with:
outputs: type=image,"name=${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=true outputs: type=image,"name=${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=true
@@ -88,17 +88,17 @@ jobs:
merge-multiple: true merge-multiple: true
- name: Login to GHCR - name: Login to GHCR
uses: docker/login-action@v4.0.0 uses: docker/login-action@v4.2.0
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4.0.0 uses: docker/setup-buildx-action@v4.1.0
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v7
- name: Get p2pool release tag - name: Get p2pool release tag
run: echo P2POOL_TAG="$(awk -F '=' '/P2POOL_BRANCH=/ {print $2}' Dockerfile)" >> $GITHUB_ENV run: echo P2POOL_TAG="$(awk -F '=' '/P2POOL_BRANCH=/ {print $2}' Dockerfile)" >> $GITHUB_ENV

View File

@@ -1,7 +1,7 @@
ARG P2POOL_BRANCH=v4.14 ARG P2POOL_BRANCH=v4.17
# Select latest Ubuntu LTS for the build image base # Pin to the latest Ubuntu LTS for the build image base (kept current by Renovate)
FROM ubuntu:latest as build FROM ubuntu:24.04 as build
LABEL author="sethforprivacy@protonmail.com" \ LABEL author="sethforprivacy@protonmail.com" \
maintainer="sethforprivacy@protonmail.com" maintainer="sethforprivacy@protonmail.com"
@@ -24,20 +24,22 @@ WORKDIR /p2pool
# Git pull p2pool source at specified tag/branch # Git pull p2pool source at specified tag/branch
ARG P2POOL_BRANCH ARG P2POOL_BRANCH
RUN git clone --recursive --branch ${P2POOL_BRANCH} https://github.com/SChernykh/p2pool . RUN git clone --recursive --depth 1 --shallow-submodules --branch ${P2POOL_BRANCH} https://github.com/SChernykh/p2pool .
# Make static p2pool binary # Make static p2pool binary
ARG NPROC ARG NPROC
RUN test -z "$NPROC" && nproc > /nproc || echo -n "$NPROC" > /nproc && mkdir build && cd build && cmake .. && make -j"$(cat /nproc)" RUN test -z "$NPROC" && nproc > /nproc || echo -n "$NPROC" > /nproc && mkdir build && cd build && cmake .. && make -j"$(cat /nproc)"
# Select latest Ubuntu LTS for the image base # Pin to the latest Ubuntu LTS for the image base (kept current by Renovate)
FROM ubuntu:latest FROM ubuntu:24.04
# Install remaining dependencies # Install only the runtime shared libraries that the p2pool binary links against
# (runtime equivalents of the build-stage -dev packages, verified via ldd on the
# built binary against the pinned Ubuntu 24.04 base)
RUN apt-get update \ RUN apt-get update \
&& apt-get upgrade -y \ && apt-get upgrade -y \
&& apt-get install --no-install-recommends -y libuv1-dev libzmq3-dev libsodium-dev \ && apt-get install --no-install-recommends -y libuv1t64 libzmq5 libsodium23 \
libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev \ libpgm-5.3-0t64 libnorm1t64 libgssapi-krb5-2 libcurl4t64 libidn2-0 \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*

View File

@@ -3,8 +3,8 @@ A simple and straightforward Dockerized [p2pool](https://github.com/SChernykh/p2
## Actions ## Actions
[![Daily Update Rebuild](https://github.com/sethsimmons/p2pool-docker//actions/workflows/update-daily.yml/badge.svg)](https://github.com/sethsimmons/p2pool-docker/actions/workflows/update-daily.yml) [![Daily Update Rebuild](https://github.com/sethforprivacy/p2pool-docker//actions/workflows/update-daily.yml/badge.svg)](https://github.com/sethforprivacy/p2pool-docker/actions/workflows/update-daily.yml)
[![Weekly Update Rebuild](https://github.com/sethsimmons/p2pool-docker//actions/workflows/update-base-image.yml/badge.svg)](https://github.com/sethsimmons/p2pool-docker/actions/workflows/update-base-image.yml) [![Weekly Update Rebuild](https://github.com/sethforprivacy/p2pool-docker//actions/workflows/update-base-image.yml/badge.svg)](https://github.com/sethforprivacy/p2pool-docker/actions/workflows/update-base-image.yml)
# Docker Hub # Docker Hub
This repo is used to build the images available here on GHCR. This repo is used to build the images available here on GHCR.