kohanucha on Nostr: #siamstr วันนี้มาแจกตัวอย่าง Dockerfile ...
#siamstr
วันนี้มาแจกตัวอย่าง Dockerfile สำหรับ build electrs server docker image เผื่อใครสนใจทำไว้ run เล่นเองที่บ้านครับ
Dockerfile
```
FROM rust:slim-bookworm AS build
# Declare build args
ARG VERSION=master
# Install build dependencies
RUN apt-get update && apt-get install -qqy \
clang cmake build-essential git pkg-config libssl-dev \
librocksdb-dev
# Clone and build electrs
RUN git clone
https://github.com/romanz/electrs.git /electrs && \
cd /electrs && \
git checkout ${VERSION} && \
cargo build --locked --release
FROM debian:bookworm-slim AS runtime
# Declare runtime args
ARG UID=
ARG GID=
ARG USERNAME=
ARG GROUPNAME=
# Create group and user
RUN groupadd -g ${GID} ${GROUPNAME} && \
useradd -u ${UID} -g ${GID} -m -s /bin/bash ${USERNAME} && \
mkdir -p /home/${USERNAME}/electrs/bin /home/${USERNAME}/electrs/db /home/${USERNAME}/electrs/bitcoin && \
chown -R ${USERNAME}:${GROUPNAME} /home/${USERNAME}
# Copy the built binary
COPY --from=build /electrs/target/release/electrs /home/${USERNAME}/electrs/bin/
# Switch to non-root user
USER ${USERNAME}
WORKDIR /home/${USERNAME}/electrs
# Expose port 50001
EXPOSE 50001
# Run the binary
CMD ["./bin/electrs"]
```
build.sh
```
#!/bin/bash
VERSION=v0.10.9
export VERSION=${VERSION}
docker buildx build --build-arg VERSION -t electrs:${VERSION} /path/to/dockerfile
```
Published at
2025-07-18 00:56:51 UTCEvent JSON
{
"id": "d81c990557f88f34e5054996a9bfed59e436bef0f8b55d90e4a045b028801623",
"pubkey": "6bd128bf99237f476877420cec54737b1e44d4a25afce35f16296945bb9002f8",
"created_at": 1752800211,
"kind": 1,
"tags": [
[
"t",
"siamstr"
]
],
"content": "#siamstr\n\nวันนี้มาแจกตัวอย่าง Dockerfile สำหรับ build electrs server docker image เผื่อใครสนใจทำไว้ run เล่นเองที่บ้านครับ\n\nDockerfile\n```\nFROM rust:slim-bookworm AS build\n\n# Declare build args\nARG VERSION=master\n\n# Install build dependencies\nRUN apt-get update \u0026\u0026 apt-get install -qqy \\\n clang cmake build-essential git pkg-config libssl-dev \\\n librocksdb-dev\n\n# Clone and build electrs\nRUN git clone https://github.com/romanz/electrs.git /electrs \u0026\u0026 \\\n cd /electrs \u0026\u0026 \\\n git checkout ${VERSION} \u0026\u0026 \\\n cargo build --locked --release\n\n\nFROM debian:bookworm-slim AS runtime\n\n# Declare runtime args\nARG UID=\nARG GID=\nARG USERNAME=\nARG GROUPNAME=\n\n# Create group and user\nRUN groupadd -g ${GID} ${GROUPNAME} \u0026\u0026 \\\n useradd -u ${UID} -g ${GID} -m -s /bin/bash ${USERNAME} \u0026\u0026 \\\n mkdir -p /home/${USERNAME}/electrs/bin /home/${USERNAME}/electrs/db /home/${USERNAME}/electrs/bitcoin \u0026\u0026 \\\n chown -R ${USERNAME}:${GROUPNAME} /home/${USERNAME}\n\n# Copy the built binary\nCOPY --from=build /electrs/target/release/electrs /home/${USERNAME}/electrs/bin/\n\n# Switch to non-root user\nUSER ${USERNAME}\nWORKDIR /home/${USERNAME}/electrs\n\n# Expose port 50001\nEXPOSE 50001\n\n# Run the binary\nCMD [\"./bin/electrs\"]\n\n```\n\nbuild.sh\n```\n#!/bin/bash\nVERSION=v0.10.9\nexport VERSION=${VERSION}\ndocker buildx build --build-arg VERSION -t electrs:${VERSION} /path/to/dockerfile\n```",
"sig": "29accc6b264d2add2ee79dd2586178320fa530a9e7f192fa7878829c733acce3a8438fbeea95b97b13665c8dbaa17c0a1fd8a5abb92bb57bef30f3d84feb16fc"
}