diff --git a/Dockerfile b/Dockerfile index cdb4d43..de171e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,53 @@ +# syntax=docker/dockerfile:1.3-labs # Use a base image -FROM ubuntu:20.04 +FROM cruizba/ubuntu-dind:focal-24.0.6 # Install necessary packages RUN apt-get update && \ - apt-get install -y wget && \ - apt-get install -y gnupg2 && \ - apt-get install -y software-properties-common && \ - apt install supervisor + apt-get install -y wget gnupg2 software-properties-common supervisor make git sudo -# Download the pre-built files from GitHub releases -RUN wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb && \ - wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/blockbook-flo_0.4.0_amd64.deb +# Mount the Docker socket from the host into the container +# VOLUME /var/run/docker.sock:/var/run/docker.sock -# Install the downloaded packages -RUN apt install -y ./backend-flo_0.15.1.1-satoshilabs-1_amd64.deb && \ - apt install -y ./blockbook-flo_0.4.0_amd64.deb +# Build app (You can add your application build steps here) +RUN git clone https://github.com/ranchimall/blockbook +WORKDIR /blockbook +RUN --security=insecure cd /blockbook && make all-flo -# Clean up downloaded packages -RUN rm -f ./backend-flo_0.15.1.1-satoshilabs-1_amd64.deb && \ - rm -f ./blockbook-flo_0.4.0_amd64.deb +# Install deb files +RUN sudo apt install -y ./build/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb && \ + sudo apt install -y ./build/blockbook-flo_0.4.0_amd64.deb -# Setting up supervisor configurations -#COPY backend-flo.conf /etc/supervisor/conf.d/ -#COPY blockbook-flo.conf /etc/supervisor/conf.d/ -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf -RUN touch /var/log/backend-flo-error.log && touch /var/log/backend-flo.log && touch /var/log/blockbook-flo-error.log && touch /var/log/blockbook-flo.log -#RUN supervisorctl reread && supervisorctl update +# Download deb files +# RUN wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb \ +# https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/blockbook-flo_0.4.0_amd64.deb -# Expose the port for the Blockbook web interface -EXPOSE 9166 +# Create run flo directory +# RUN mkdir -p /run/flo -# Start the Blockbook service -#CMD ["/usr/local/bin/blockbook", "--config", "/etc/blockbook/blockbook-flo.cfg"] -#CMD ["/opt/coins/nodes/flo/bin/flod -datadir=/opt/coins/data/flo/backend -conf=/opt/coins/nodes/flo/flo.conf -pid=/run/flo/flo.pid"] +# # Create a common group (e.g., flo-group) and set permissions +# RUN groupadd flo-group && \ +# usermod -aG flo-group flo && \ +# usermod -aG flo-group blockbook-flo && \ +# chown :flo-group /run/flo && \ +# chmod 777 /run/flo -EXPOSE 22 80 -CMD ["/usr/bin/supervisord"] \ No newline at end of file +# Setting up supervisor configurations (Uncomment and add your configuration files) +COPY alt-helper.sh / +# COPY blockbook-flo.conf /etc/supervisor/conf.d/ +# COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf + +# Create log files +# RUN touch /var/log/backend-flo-error.log && \ +# touch /var/log/backend-flo.log && \ +# touch /var/log/blockbook-flo-error.log && \ +# touch /var/log/blockbook-flo.log + +# Expose ports +EXPOSE 22 80 9166 + +# Start supervisord (Uncomment this line) +# CMD ["/usr/bin/supervisord"] + +# Start your applications (Uncomment and replace with your application start commands) +#CMD ["/usr/bin/bash", "/alt-helper.sh"] \ No newline at end of file diff --git a/Dockerfile-althelper b/Dockerfile-althelper new file mode 100644 index 0000000..068d7d2 --- /dev/null +++ b/Dockerfile-althelper @@ -0,0 +1,52 @@ +# Use a base image +FROM cruizba/ubuntu-dind:latest + +# Install necessary packages +RUN apt-get update && \ + apt-get install -y wget gnupg2 software-properties-common supervisor make git sudo + +# Mount the Docker socket from the host into the container +# VOLUME /var/run/docker.sock:/var/run/docker.sock + +# Build app (You can add your application build steps here) +RUN git clone https://github.com/ranchimall/blockbook +# WORKDIR /blockbook +# RUN sudo make all-flo + +# Install deb files +# RUN sudo apt install -y ./build/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb && \ +# sudo apt install -y ./build/blockbook-flo_0.4.0_amd64.deb + +# Download deb files +# RUN wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb \ +# https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/blockbook-flo_0.4.0_amd64.deb + +# Create run flo directory +# RUN mkdir -p /run/flo + +# # Create a common group (e.g., flo-group) and set permissions +# RUN groupadd flo-group && \ +# usermod -aG flo-group flo && \ +# usermod -aG flo-group blockbook-flo && \ +# chown :flo-group /run/flo && \ +# chmod 777 /run/flo + +# Setting up supervisor configurations (Uncomment and add your configuration files) +COPY alt-helper.sh / +# COPY blockbook-flo.conf /etc/supervisor/conf.d/ +# COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf + +# Create log files +# RUN touch /var/log/backend-flo-error.log && \ +# touch /var/log/backend-flo.log && \ +# touch /var/log/blockbook-flo-error.log && \ +# touch /var/log/blockbook-flo.log + +# Expose ports +EXPOSE 22 80 9166 + +# Start supervisord (Uncomment this line) +# CMD ["/usr/bin/supervisord"] + +# Start your applications (Uncomment and replace with your application start commands) +CMD ["/usr/bin/bash", "/alt-helper.sh"] \ No newline at end of file diff --git a/README.md b/README.md index b80d9fa..f19b9e8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ # Blockbook docker The code and steps required to run Docker version of Blockbook block explorer + +``` +sudo docker build -t blockbook-althelper -f Dockerfile-althelper . +sudo docker run -d --privileged -p 9166:9166 d5e56e218acd +``` \ No newline at end of file diff --git a/alt-helper.sh b/alt-helper.sh new file mode 100644 index 0000000..99f8468 --- /dev/null +++ b/alt-helper.sh @@ -0,0 +1,28 @@ +cd /blockbook && sudo make all-flo + +#1. Install deb files +cd /blockbook/build && sudo apt install -y ./backend-flo_0.15.1.1-satoshilabs-1_amd64.deb +cd /blockbook/build && sudo apt install -y ./blockbook-flo_0.4.0_amd64.deb + +#2. create run flo dir +mkdir -p /run/flo + +#3. create a group and add flo and blockbook-flo & set permission for dir +# Create a common group (e.g., flo-group) +groupadd flo-group + +# Add users to the common group +usermod -aG flo-group flo +usermod -aG flo-group blockbook-flo + +# Set the common group ownership on the directory +chown :flo-group /run/flo + +# Give the group read-write permissions on the directory +chmod 777 /run/flo + +# 4. run main commands as user + +su -s /bin/bash -c "/opt/coins/nodes/flo/bin/flod -datadir=/opt/coins/data/flo/backend -conf=/opt/coins/nodes/flo/flo.conf -pid=/run/flo/flo.pid" flo + +su -s /bin/bash -c "cd /opt/coins/blockbook/flo && /opt/coins/blockbook/flo/bin/blockbook -blockchaincfg=/opt/coins/blockbook/flo/config/blockchaincfg.json -datadir=/opt/coins/data/flo/blockbook/db -sync -internal=:9066 -public=:9166 -certfile=/opt/coins/blockbook/flo/cert/blockbook -explorer= -log_dir=/opt/coins/blockbook/flo/logs -dbcache=1073741824" blockbook-flo diff --git a/config-helper.sh b/config-helper.sh new file mode 100644 index 0000000..30580fa --- /dev/null +++ b/config-helper.sh @@ -0,0 +1,35 @@ + +# Install make and git +apt install -y make git sudo + + +wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb +wget https://github.com/ranchimall/blockbook/releases/download/flo-v0.4.0-ubuntu/blockbook-flo_0.4.0_amd64.deb + +#1. Install deb files +apt install sudo +sudo apt install -y /opt/backend-flo_0.15.1.1-satoshilabs-1_amd64.deb +sudo apt install -y /opt/blockbook-flo_0.4.0_amd64.deb + +#2. create run flo dir +mkdir -p /run/flo + +#3. create a group and add flo and blockbook-flo & set permission for dir +# Create a common group (e.g., flo-group) +groupadd flo-group + +# Add users to the common group +usermod -aG flo-group flo +usermod -aG flo-group blockbook-flo + +# Set the common group ownership on the directory +chown :flo-group /run/flo + +# Give the group read-write permissions on the directory +chmod 777 /run/flo + +# 4. run main commands as user + +# su -s /bin/bash -c "/opt/coins/nodes/flo/bin/flod -datadir=/opt/coins/data/flo/backend -conf=/opt/coins/nodes/flo/flo.conf -pid=/run/flo/flo.pid" flo + +# su -s /bin/bash -c "/opt/coins/blockbook/flo/bin/blockbook -blockchaincfg=/opt/coins/blockbook/flo/config/blockchaincfg.json -datadir=/opt/coins/data/flo/blockbook/db -sync -internal=:9066 -public=:9166 -certfile=/opt/coins/blockbook/flo/cert/blockbook -explorer= -log_dir=/opt/coins/blockbook/flo/logs -dbcache=1073741824" blockbook-flo \ No newline at end of file