first try

This commit is contained in:
Sebastian
2024-12-18 08:39:52 +01:00
parent f9cde96de0
commit 925ccbadb9
3 changed files with 85 additions and 0 deletions

31
sonic/Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# Running Sonic in Docker is Experimental - not recommended for production use!
# Example of usage:
# docker build -t sonic .
# docker run --name sonic1 --entrypoint sonictool sonic --datadir=/var/sonic genesis fake 1
# docker run --volumes-from sonic1 -p 5050:5050 -p 5050:5050/udp -p 18545:18545 sonic --fakenet 1/1 --http --http.addr=0.0.0.0
FROM golang:1.22 as builder
RUN apt-get update && apt-get install -y git musl-dev make
RUN cd /go && git clone https://github.com/Fantom-foundation/Sonic.git && git fetch --tags && git checkout -b v2.0.1 tags/v2.0.1
WORKDIR /go/Sonic
ARG GOPROXY
RUN go mod download
RUN make all
FROM golang:1.22
COPY --from=builder /go/Sonic/build/sonicd /usr/local/bin/
COPY --from=builder /go/Sonic/build/sonictool /usr/local/bin/
COPY ./entrypoint.sh /entrypoint.sh
EXPOSE 18545 18546 5050 5050/udp
VOLUME /var/sonic
ENTRYPOINT ["bash", "entrypoint.sh"]

25
sonic/entrypoint.sh Normal file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
if [ ! -f /var/sonic/initialized ]; then
echo "Initializing Sonic..."
# Add your initialization commands here
# Example:
# mkdir -p /var/sonic/data
# touch /var/sonic/config.json
wget https://genesis.soniclabs.com/sonic-mainnet/genesis/sonic.g.md5
GOMEMLIMIT=50GiB sonictool --datadir /var/sonic --cache 12000 genesis sonic.g.md5
rm sonic.g
# Create the file to mark initialization
touch /var/sonic/initialized
echo "Initialization complete."
else
echo "Sonic is already initialized."
fi
touch /var/sonic/initialized
exec sonicd --datadir /var/sonic "$@"