added dockerfiles, starting to use custom images

This commit is contained in:
Brad Stein 2025-08-13 21:56:00 -05:00
parent ab12175b6f
commit 074a380381
5 changed files with 97 additions and 29 deletions

View File

@ -0,0 +1,28 @@
# syntax=docker/dockerfile:1.6
FROM debian:bookworm-slim
ARG P2POOL_VERSION=v4.9
ARG TARGETARCH
ARG P2POOL_SHA256=""
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates curl xz-utils tar; \
update-ca-certificates; \
case "${TARGETARCH:-arm64}" in \
amd64) ASUF="linux-x86_64" ;; \
arm64) ASUF="linux-arm64" ;; \
arm) ASUF="linux-arm" ;; \
*) echo "Unsupported TARGETARCH=${TARGETARCH}"; exit 1 ;; \
esac; \
URL="https://github.com/SChernykh/p2pool/releases/download/${P2POOL_VERSION}/p2pool-${ASUF}.tar.gz"; \
echo "Downloading $URL"; \
curl -fL "$URL" -o /tmp/p2pool.tgz; \
if [ -n "$P2POOL_SHA256" ]; then echo "${P2POOL_SHA256} /tmp/p2pool.tgz" | sha256sum -c -; fi; \
tar -xzf /tmp/p2pool.tgz -C /usr/local/bin --wildcards 'p2pool*'; \
chmod 0755 /usr/local/bin/p2pool*; \
ln -sf /usr/local/bin/p2pool /usr/local/bin/p2pool; \
rm -f /tmp/p2pool.tgz
EXPOSE 3333
CMD ["p2pool","--version"]

View File

@ -0,0 +1,30 @@
# syntax=docker/dockerfile:1.6
FROM debian:bookworm-slim
ARG MONERO_VERSION=v0.18.4.1
ARG TARGETARCH
ARG MONERO_SHA256=""
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates curl bzip2; \
update-ca-certificates; \
case "${TARGETARCH:-arm64}" in \
amd64) F="monero-linux-x64" ;; \
arm64) F="monero-linux-armv8" ;; \
arm) F="monero-linux-armv7" ;; \
*) echo "Unsupported TARGETARCH=${TARGETARCH}"; exit 1 ;; \
esac; \
URL="https://downloads.getmonero.org/cli/${F}-${MONERO_VERSION}.tar.bz2"; \
echo "Downloading $URL"; \
curl -fL "$URL" -o /tmp/monero.tar.bz2; \
if [ -n "$MONERO_SHA256" ]; then echo "${MONERO_SHA256} /tmp/monero.tar.bz2" | sha256sum -c -; fi; \
mkdir -p /opt/monero; \
tar -xjf /tmp/monero.tar.bz2 -C /opt/monero --strip-components=1; \
rm -f /tmp/monero.tar.bz2; \
mkdir -p /data
ENV LD_LIBRARY_PATH=/opt/monero:/opt/monero/lib \
PATH="/opt/monero:${PATH}"
CMD ["monero-wallet-rpc","--version"]

View File

@ -0,0 +1,31 @@
# syntax=docker/dockerfile:1.6
FROM debian:bookworm-slim
ARG MONERO_VERSION=v0.18.4.1
ARG TARGETARCH
ARG MONERO_SHA256=""
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends ca-certificates curl bzip2 xz-utils; \
update-ca-certificates; \
case "${TARGETARCH:-arm64}" in \
amd64) F="monero-linux-x64" ;; \
arm64) F="monero-linux-armv8" ;; \
arm) F="monero-linux-armv7" ;; \
*) echo "Unsupported TARGETARCH=${TARGETARCH}"; exit 1 ;; \
esac; \
URL="https://downloads.getmonero.org/cli/${F}-${MONERO_VERSION}.tar.bz2"; \
echo "Downloading $URL"; \
curl -fL "$URL" -o /tmp/monero.tar.bz2; \
if [ -n "$MONERO_SHA256" ]; then echo "${MONERO_SHA256} /tmp/monero.tar.bz2" | sha256sum -c -; fi; \
mkdir -p /opt/monero; \
tar -xjf /tmp/monero.tar.bz2 -C /opt/monero --strip-components=1; \
rm -f /tmp/monero.tar.bz2; \
mkdir -p /data; \
chmod 0770 /data
ENV LD_LIBRARY_PATH=/opt/monero:/opt/monero/lib \
PATH="/opt/monero:${PATH}"
CMD ["/opt/monero/monerod", "--version"]

View File

@ -18,37 +18,10 @@ spec:
fsGroupChangePolicy: OnRootMismatch fsGroupChangePolicy: OnRootMismatch
nodeSelector: nodeSelector:
node-role.kubernetes.io/worker: "true" node-role.kubernetes.io/worker: "true"
initContainers:
- name: fetch-monero-cli
image: debian:bookworm-slim
command: ["/bin/sh","-c"]
args:
- |
set -eux
apt-get update
apt-get install -y --no-install-recommends ca-certificates curl bzip2
update-ca-certificates
ARCH="$(uname -m)"
case "$ARCH" in
x86_64) F="monero-linux-x64" ;;
aarch64|arm64) F="monero-linux-armv8" ;;
armv7l) F="monero-linux-armv7" ;;
*) echo "Unsupported arch: $ARCH" >&2; exit 1 ;;
esac
VER="v0.18.4.1"
URL="https://downloads.getmonero.org/cli/${F}-${VER}.tar.bz2"
echo "Downloading $URL"
cd /data
curl -fL "$URL" -o monero.tar.bz2
tar -xjf monero.tar.bz2 --strip-components=1
rm -f monero.tar.bz2
volumeMounts:
- name: data
mountPath: /data
containers: containers:
- name: monerod - name: monerod
image: debian:bookworm-slim image: registry.bstein.dev/infra/monerod:0.18.4.1
command: ["/data/monerod"] command: ["/opt/monero/monerod"]
args: args:
- --data-dir=/data - --data-dir=/data
- --non-interactive - --non-interactive
@ -87,6 +60,11 @@ spec:
periodSeconds: 20 periodSeconds: 20
timeoutSeconds: 3 timeoutSeconds: 3
failureThreshold: 6 failureThreshold: 6
terminationGracePeriodSeconds: 120
lifecycle:
preStop:
exec:
command: ["sh","-lc","kill -TERM 1; for i in $(seq 1 110); do kill -0 1 2>/dev/null || exit 0; sleep 1; done; exit 0"]
volumeMounts: volumeMounts:
- { name: data, mountPath: /data } - { name: data, mountPath: /data }
- { name: tmp, mountPath: /tmp } - { name: tmp, mountPath: /tmp }

View File

@ -1,3 +1,4 @@
# services/crypto/xmr-miner/deployment.yaml
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata: