Dockerfile compiles the node binaries from source inside an Ubuntu 22.04 builder image, then copies only the stripped binaries into a minimal runtime image. This keeps the final image small and free of build toolchain bloat. The container exposes port 20808 for peer-to-peer traffic and port 28180 for the daemon RPC.
Prerequisites
- Docker 20.10 or later
- Docker Compose v2 (if using Compose)
- ~20 GB of free disk space for the blockchain data volume
Build the image
Clone the Fuego repository and build the Docker image from the project root:| Argument | Default | Description |
|---|---|---|
BUILD_TYPE | Release | CMake build type |
ENABLE_OPTIMIZATIONS | ON | Enable compiler optimizations |
Run the node container
Start a container with P2P and RPC ports mapped and a named volume for blockchain data persistence:The container starts
fuegod with --data-dir=/home/fuego/.fuego, --rpc-bind-ip=0.0.0.0, and --rpc-bind-port=28180 by default, as defined in the Dockerfile CMD.Always use a named volume (or a bind mount to a persistent path) for
/home/fuego/.fuego. If you remove and recreate the container without a persistent volume, the node will re-download the entire blockchain from scratch.Verify the node is running
Check the container logs to confirm the node is syncing:You can also query the RPC health endpoint directly:A JSON response with
height and peer information confirms the daemon is responding.Deploy with Docker Compose
The included The Compose file maps the following ports:
To include the optional Nginx reverse proxy (defined with a
docker-compose.yml starts both the fuego-node (daemon) and fuego-wallet (walletd) services on an isolated bridge network. Both services share the same built image.| Service | Port | Purpose |
|---|---|---|
fuego-node | 20808 | P2P networking |
fuego-node | 28180 | Daemon RPC |
fuego-wallet | 8070 | Wallet RPC (walletd) |
fuego-wallet connects to fuego-node automatically via the internal fuego-network bridge using the hostname fuego-node on port 28180.To bring only the node service up (without the wallet):web profile):Two named volumes are created by Compose:
fuego-data for blockchain state and fuego-wallet-data for wallet files. Both persist across docker compose down restarts. They are only removed if you run docker compose down -v.Restrict RPC access in production
By default the RPC port is bound to all interfaces (0.0.0.0) inside the container, which is then exposed on your host via -p 28180:28180. In a production environment you should either bind the port to 127.0.0.1 on the host or enable restricted mode:
Health check
TheDockerfile includes a built-in health check that polls the RPC endpoint every 30 seconds:
healthy means the daemon is running and responding to RPC requests.