mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2024-12-24 13:45:32 +03:00
monerod
This commit is contained in:
parent
5888b2f9b7
commit
e64657c400
@ -6,7 +6,7 @@ ARG DEBIAN_FRONTEND=noninteractive
|
|||||||
# perforce client binary
|
# perforce client binary
|
||||||
##################################################################
|
##################################################################
|
||||||
ENV P4_VERSION=r22.1
|
ENV P4_VERSION=r22.1
|
||||||
ENV P4_DOWNLOAD_URL=https://www.perforce.com/downloads/perforce/${P4_VERSION}/bin.linux26x86_64/p4
|
ENV P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# 7z official binary
|
# 7z official binary
|
||||||
@ -155,12 +155,12 @@ RUN apt-get update && \
|
|||||||
##################################################################
|
##################################################################
|
||||||
# gh official binary
|
# gh official binary
|
||||||
##################################################################
|
##################################################################
|
||||||
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C99B11DEB97541F0
|
#RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C99B11DEB97541F0
|
||||||
COPY etc/apt/sources.list.d/github-cli.list /etc/apt/sources.list.d/github-cli.list
|
#COPY etc/apt/sources.list.d/github-cli.list /etc/apt/sources.list.d/github-cli.list
|
||||||
RUN apt-get update && \
|
#RUN apt-get update && \
|
||||||
apt-get install -y --allow-unauthenticated \
|
# apt-get install -y --allow-unauthenticated \
|
||||||
gh && \
|
# gh && \
|
||||||
gh --version
|
# gh --version
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Install p4client
|
# Install p4client
|
||||||
|
@ -1 +0,0 @@
|
|||||||
deb https://cli.github.com/packages stable main
|
|
Binary file not shown.
49
linux/ecosystem/monero/monerod/Dockerfile
Normal file
49
linux/ecosystem/monero/monerod/Dockerfile
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
FROM epicmorg/debian:bullseye
|
||||||
|
LABEL maintainer="original by sethforprivacy; EpicMorg DevTeam, developer@epicm.org"
|
||||||
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# ARGuments
|
||||||
|
##################################################################
|
||||||
|
ENV MONERO_DIR=/monero
|
||||||
|
ENV MONERO_BIN=${MONERO_DIR}/bin
|
||||||
|
ENV MONERO_DATA=${MONERO_DIR}/data
|
||||||
|
ENV MONERO_VERSION=0.18.1.0
|
||||||
|
ENV MONERO_DOWNLOAD_URL=https://downloads.getmonero.org/cli/monero-linux-x64-v${MONERO_VERSION}.tar.bz2
|
||||||
|
ENV PATH="${PATH}:${MONERO_BIN}"
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# Installing
|
||||||
|
##################################################################
|
||||||
|
RUN mkdir /monero /monero/bin /monero/data
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y \
|
||||||
|
libzmq3-dev
|
||||||
|
|
||||||
|
RUN echo ${MONERO_BIN}
|
||||||
|
RUN wget -qO- ${MONERO_DOWNLOAD_URL} | tar -xvj --strip-components=1 -C ${MONERO_BIN}
|
||||||
|
|
||||||
|
RUN export PATH="${PATH}:${MONERO_BIN}"
|
||||||
|
|
||||||
|
RUN monerod --version
|
||||||
|
|
||||||
|
# Expose p2p port
|
||||||
|
EXPOSE 18080
|
||||||
|
|
||||||
|
# Expose restricted RPC port
|
||||||
|
EXPOSE 18089
|
||||||
|
|
||||||
|
VOLUME ["${MONERO_DATA}"]
|
||||||
|
WORKDIR ${MONERO_DIR}
|
||||||
|
|
||||||
|
# Add HEALTHCHECK against get_info endpoint
|
||||||
|
HEALTHCHECK --interval=30s --timeout=5s CMD curl --fail http://localhost:18081/get_info || exit 1
|
||||||
|
|
||||||
|
# Copy and enable entrypoint script
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
RUN set -ex && chmod +x /entrypoint.sh
|
||||||
|
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||||
|
|
||||||
|
# Start monerod with sane defaults that are overridden by user input (if applicable)
|
||||||
|
CMD ["--rpc-restricted-bind-ip=0.0.0.0", "--rpc-restricted-bind-port=18089", "--no-igd", "--no-zmq", "--enable-dns-blocklist"]
|
21
linux/ecosystem/monero/monerod/LICENSE
Normal file
21
linux/ecosystem/monero/monerod/LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2021 Seth Simmons (@sethsimmons)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
19
linux/ecosystem/monero/monerod/Makefile
Normal file
19
linux/ecosystem/monero/monerod/Makefile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
all: app
|
||||||
|
|
||||||
|
app:
|
||||||
|
make build
|
||||||
|
make deploy
|
||||||
|
make clean
|
||||||
|
|
||||||
|
build:
|
||||||
|
docker-compose build --compress --parallel --progress plain
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
docker-compose push
|
||||||
|
|
||||||
|
clean:
|
||||||
|
docker container prune -f
|
||||||
|
docker image prune -f
|
||||||
|
docker network prune -f
|
||||||
|
docker volume prune -f
|
||||||
|
docker system prune -af
|
84
linux/ecosystem/monero/monerod/README.md
Normal file
84
linux/ecosystem/monero/monerod/README.md
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
# Simple Monerod Docker
|
||||||
|
|
||||||
|
A simple and straightforward Dockerized monerod built from source and exposing standard ports.
|
||||||
|
|
||||||
|
## Actions
|
||||||
|
|
||||||
|
[![Weekly Update Rebuild](https://github.com/sethforprivacy/simple-monerod-docker/actions/workflows/update-base-image.yml/badge.svg)](https://github.com/sethforprivacy/simple-monerod-docker/actions/workflows/update-base-image.yml)
|
||||||
|
[![Latest Dockerfile build on push](https://github.com/sethforprivacy/simple-monerod-docker/actions/workflows/update-image-on-push.yml/badge.svg)](https://github.com/sethforprivacy/simple-monerod-docker/actions/workflows/update-image-on-push.yml)
|
||||||
|
|
||||||
|
## Docker
|
||||||
|
|
||||||
|
![Docker Pulls](https://img.shields.io/docker/pulls/sethsimmons/simple-monerod)
|
||||||
|
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/sethsimmons/simple-monerod/latest)
|
||||||
|
![Docker Image Version (latest by date)](https://img.shields.io/docker/v/sethsimmons/simple-monerod)
|
||||||
|
|
||||||
|
## Docker Hub
|
||||||
|
|
||||||
|
This repo is used to build the images available at:
|
||||||
|
|
||||||
|
https://hub.docker.com/r/sethsimmons/simple-monerod
|
||||||
|
|
||||||
|
## Tags
|
||||||
|
|
||||||
|
I will always release the latest Monero version under the `latest` tag as well as the version number tag (i.e. `v0.18.0.0`).
|
||||||
|
|
||||||
|
`latest`: The latest tagged version of Monero from https://github.com/monero-project/monero/tags, built on an Alpine base image
|
||||||
|
`vx.xx.x.x`: The version corresponding with the tagged version from https://github.com/monero-project/monero/tags, built on an Alpine base image
|
||||||
|
|
||||||
|
Note that the primary focus and images are using the Alpine base image, but I will continue to support the Ubuntu based image for now.
|
||||||
|
|
||||||
|
## Recommended usage
|
||||||
|
|
||||||
|
I am using this container for my guide on running a Monero node:
|
||||||
|
|
||||||
|
https://sethforprivacy.com/guides/run-a-monero-node/
|
||||||
|
|
||||||
|
The ways I would generally recommend running this container for a personal or public Monero node are below.
|
||||||
|
|
||||||
|
monerod Docker w/o public RPC:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo docker run -d --restart unless-stopped --name="monerod" -v bitmonero:/home/monero/.bitmonero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --no-igd --no-zmq --enable-dns-blocklist
|
||||||
|
```
|
||||||
|
|
||||||
|
monerod Docker w/ public RPC:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo docker run -d --restart unless-stopped --name="monerod" -v bitmonero:/home/monero/.bitmonero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist
|
||||||
|
```
|
||||||
|
|
||||||
|
monerod Docker w/o public RPC (pruned):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo docker run -d --restart unless-stopped --name="monerod" -v bitmonero:/home/monero/.bitmonero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --no-igd --no-zmq --enable-dns-blocklist --prune-blockchain
|
||||||
|
```
|
||||||
|
|
||||||
|
monerod Docker w/ public RPC (pruned):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo docker run -d --restart unless-stopped --name="monerod" -v bitmonero:/home/monero/.bitmonero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist --prune-blockchain
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running as a different user
|
||||||
|
|
||||||
|
In situations where you need the daemon to be run as a different user, I have added [fixuid](https://github.com/boxboat/fixuid) to enable that. Much of the work for this was taken from [docker-monero](https://github.com/cornfeedhobo/docker-monero), and enables you to specify a new user/group in your `docker run` or `docker-compose.yml` file to run as a different user.
|
||||||
|
|
||||||
|
- In `docker run` commands, you can specify the user like this: `--user 1000:1000`
|
||||||
|
- In `docker-compose.yml` files, you can specify the user like this: `user: ${FIXUID:-1000}:${FIXGID:-1000}`
|
||||||
|
|
||||||
|
A great use-case for this is running with the daemon's files stored on an NFS mount, or running monerod on a Synology NAS.
|
||||||
|
|
||||||
|
## Copyrights
|
||||||
|
|
||||||
|
Code from this repository is released under MIT license. [Monero License](https://github.com/monero-project/monero/blob/master/LICENSE), [@leonardochaia License](https://github.com/leonardochaia/docker-monerod/blob/master/LICENSE)
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
|
||||||
|
The base for the Dockerfile was pulled from:
|
||||||
|
|
||||||
|
https://github.com/leonardochaia/docker-monerod
|
||||||
|
|
||||||
|
The migration to Alpine from a Ubuntu 20.04 base image was based largely on previous commits from:
|
||||||
|
|
||||||
|
https://github.com/cornfeedhobo/docker-monero
|
7
linux/ecosystem/monero/monerod/docker-compose.yml
Normal file
7
linux/ecosystem/monero/monerod/docker-compose.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
version: '3.9'
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: "epicmorg/monero:latest"
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
|
16
linux/ecosystem/monero/monerod/entrypoint.sh
Executable file
16
linux/ecosystem/monero/monerod/entrypoint.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Credit for the bulk of this entrypoint script goes to cornfeedhobo
|
||||||
|
# Source is https://github.com/cornfeedhobo/docker-monero/blob/master/entrypoint.sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Set require --non-interactive flag
|
||||||
|
set -- "monerod" "--non-interactive" "$@"
|
||||||
|
|
||||||
|
# Configure NUMA if present for improved performance
|
||||||
|
if command -v numactl >/dev/null 2>&1; then
|
||||||
|
numa="numactl --interleave=all"
|
||||||
|
set -- "$numa" "$@"
|
||||||
|
fi
|
||||||
|
# Start the daemon using fixuid
|
||||||
|
# to adjust permissions if needed
|
||||||
|
exec "$@"
|
43
linux/ecosystem/monero/monerod/examples/docker-compose.yml
Normal file
43
linux/ecosystem/monero/monerod/examples/docker-compose.yml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
monerod:
|
||||||
|
image: sethsimmons/simple-monerod:latest
|
||||||
|
user: ${FIXUID:-1000}:${FIXGID:-1000}
|
||||||
|
restart: unless-stopped
|
||||||
|
container_name: monerod
|
||||||
|
volumes:
|
||||||
|
- bitmonero:/home/monero/.bitmonero
|
||||||
|
ports:
|
||||||
|
- 18080:18080
|
||||||
|
- 18089:18089
|
||||||
|
command:
|
||||||
|
- "--rpc-restricted-bind-ip=0.0.0.0"
|
||||||
|
- "--rpc-restricted-bind-port=18089"
|
||||||
|
- "--public-node"
|
||||||
|
- "--no-igd"
|
||||||
|
- "--enable-dns-blocklist"
|
||||||
|
- "--prune-blockchain"
|
||||||
|
|
||||||
|
tor:
|
||||||
|
image: goldy/tor-hidden-service:latest
|
||||||
|
container_name: tor
|
||||||
|
restart: unless-stopped
|
||||||
|
links:
|
||||||
|
- monerod
|
||||||
|
environment:
|
||||||
|
MONEROD_TOR_SERVICE_HOSTS: 18089:monerod:18089
|
||||||
|
MONEROD_TOR_SERVICE_VERSION: '3'
|
||||||
|
volumes:
|
||||||
|
- tor-keys:/var/lib/tor/hidden_service/
|
||||||
|
|
||||||
|
watchtower:
|
||||||
|
image: containrrr/watchtower:latest
|
||||||
|
container_name: watchtower
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
bitmonero:
|
||||||
|
tor-keys:
|
Loading…
Reference in New Issue
Block a user