-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy patharbeth.Dockerfile
More file actions
48 lines (38 loc) · 1.66 KB
/
Copy patharbeth.Dockerfile
File metadata and controls
48 lines (38 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "generate-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
FROM python:3.12-alpine AS base
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
ENV ELECTRUM_USER=electrum
ENV ELECTRUM_HOME=/home/$ELECTRUM_USER
ENV ELECTRUM_DIRECTORY=${ELECTRUM_HOME}/.bitcart-arbeth
ENV IN_DOCKER=1
ENV UV_COMPILE_BYTECODE=1
ENV UV_NO_CACHE=1
ENV UV_NO_SYNC=1
ENV ARBETH_HOST=0.0.0.0
LABEL org.bitcart.image=arbeth-daemon
FROM base AS compile-image
COPY bitcart $ELECTRUM_HOME/site
RUN apk add git gcc python3-dev musl-dev automake autoconf libtool file git make libffi-dev && \
cd $ELECTRUM_HOME/site && \
uv sync --frozen --no-dev --group arbeth --group otel && \
uv run opentelemetry-bootstrap -a requirements | uv pip install --requirement -
FROM base AS build-image
RUN adduser -D $ELECTRUM_USER && \
mkdir -p /data/ && \
ln -sf /data/ $ELECTRUM_DIRECTORY && \
chown ${ELECTRUM_USER} $ELECTRUM_DIRECTORY && \
mkdir -p $ELECTRUM_HOME/site && \
chown ${ELECTRUM_USER} $ELECTRUM_HOME/site && \
apk add --no-cache libsecp256k1-dev git && \
apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main jemalloc
COPY --from=compile-image --chown=electrum $ELECTRUM_HOME/site/.venv $ELECTRUM_HOME/.venv
COPY --from=compile-image --chown=electrum $ELECTRUM_HOME/site $ELECTRUM_HOME/site
ENV PYTHONUNBUFFERED=1 PYTHONMALLOC=malloc LD_PRELOAD=libjemalloc.so.2 MALLOC_CONF=background_thread:true,max_background_threads:1,metadata_thp:auto,dirty_decay_ms:80000,muzzy_decay_ms:80000
ENV PATH="$ELECTRUM_HOME/.venv/bin:$PATH"
USER $ELECTRUM_USER
WORKDIR $ELECTRUM_HOME/site
CMD ["just","daemon", "arbeth"]