From 36ed7d2c3dd783a26b50d83fefeb289ba3935f78 Mon Sep 17 00:00:00 2001 From: goldsquid Date: Sat, 13 Dec 2025 17:00:27 +0700 Subject: [PATCH] update --- wemix/go-wemix.Dockerfile | 99 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 wemix/go-wemix.Dockerfile diff --git a/wemix/go-wemix.Dockerfile b/wemix/go-wemix.Dockerfile new file mode 100644 index 00000000..685111d8 --- /dev/null +++ b/wemix/go-wemix.Dockerfile @@ -0,0 +1,99 @@ +# Stage 1: Build stage +FROM golang:1.19 as builder + +# Set environment variables +ENV PATH=/usr/local/go/bin:$PATH + +# Update and upgrade the package list +RUN apt-get update && \ + apt-get upgrade -q -y + +# Install required packages +RUN apt-get install -y --no-install-recommends \ + git \ + ca-certificates \ + openssl \ + make && \ + rm -rf /var/lib/apt/lists/* + +# Define the location for custom certificates +ARG cert_location=/usr/local/share/ca-certificates + +# Fetch and install certificates for github.com and proxy.golang.org +RUN openssl s_client -showcerts -connect github.com:443 /dev/null | \ + openssl x509 -outform PEM > ${cert_location}/github.crt && \ + update-ca-certificates +RUN openssl s_client -showcerts -connect proxy.golang.org:443 /dev/null | \ + openssl x509 -outform PEM > ${cert_location}/proxy.golang.crt && \ + update-ca-certificates + +# Define version argument with default value +ARG VERSION=w0.10.11 + +# Clone the repository, install dependencies, and build the project +RUN git clone https://github.com/wemixarchive/go-wemix.git /go-wemix && \ + cd /go-wemix && \ + git checkout ${VERSION} && \ + go mod download && \ + make + +# Clean up unnecessary packages and files after building +RUN apt-get remove -y \ + git \ + ca-certificates \ + openssl \ + make && \ + apt autoremove -y && \ + apt-get clean + +# Stage 2: Runtime stage +FROM ubuntu:22.04 + +# Set environment variables +ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt + +# Update and upgrade the package list +RUN apt-get update && \ + apt-get upgrade -q -y + +# Install required runtime packages +RUN apt-get install -y --no-install-recommends \ + g++ \ + libc-dev \ + ca-certificates \ + bash \ + wget && \ + update-ca-certificates && \ + rm -rf /var/lib/apt/lists/* + +# Create directories for wemix +RUN mkdir -p /usr/local/wemix /usr/local/wemix/keystore + +# Set environment variables +ENV PATH=/usr/local/wemix/bin:$PATH + +# Copy the built binaries and configuration files from the builder stage +COPY --from=builder /go-wemix/build /usr/local/wemix/ + +# Download and install solc +RUN wget -nv -O /usr/local/bin/solc https://github.com/ethereum/solidity/releases/download/v0.4.24/solc-static-linux && \ + chmod a+x /usr/local/bin/solc + +# Create new accounts for wemix +RUN bash -c 'for i in 1 2 3 4; do \ + /usr/local/wemix/bin/gwemix wemix new-account --password <(echo demo) --out /usr/local/wemix/keystore/account-$i; \ +done' + +# Clean up unnecessary packages +RUN apt-get remove -y \ + g++ \ + libc-dev \ + wget && \ + apt autoremove -y && \ + apt-get clean + +# Expose necessary ports +EXPOSE 8588 8589 8598 + +# Set the entrypoint +ENTRYPOINT ["/usr/local/wemix/bin/gwemix"] \ No newline at end of file