2.2 KiB
2.2 KiB
Dockerized Holesail with PM2 Orchestration
This project provides a pre-configured Docker container for running multiple Holesail processes orchestrated using PM2. Each process is assigned a specific connection string and port.
Features
- Ubuntu-based container: Uses the latest
ubuntu
image as the base. - Node.js v20: Includes the latest Node.js for running Holesail.
- PM2 process management: Manages multiple Holesail processes with ease.
- Multi-port configuration: Runs Holesail on multiple ports with predefined connection strings.
Getting Started
Prerequisites
- Docker installed on your system.
- Basic knowledge of Docker and PM2.
Build the Docker Image
-
Clone this repository:
git clone <repository_url> cd <repository_directory>
-
Build the Docker image:
docker build -t holesail-pm2 .
Run the Container
Start the container:
docker run -d --name holesail-pm2-container holesail-pm2
This will:
- Install required dependencies.
- Start multiple Holesail processes using PM2 based on predefined connection strings and ports.
Configuration
The pm2-setup.sh
script defines the connection strings and ports. You can modify the connections
array to suit your needs:
declare -A connections
connections=(
["<connection_string_1>"]=<port_1>
["<connection_string_2>"]=<port_2>
...
)
Logs and Debugging
To view PM2 logs from the container:
docker exec -it holesail-pm2-container pm2 logs
To inspect the container:
docker exec -it holesail-pm2-container bash
File Structure
.
├── Dockerfile # Docker configuration for building the image
├── pm2-setup.sh # PM2 setup script for launching Holesail processes
Extending
To add more features:
-
Update the
pm2-setup.sh
file with additional PM2 configurations or commands. -
Rebuild the Docker image:
docker build -t holesail-pm2 .
Notes
- The
pm2-runtime
command ensures the container remains active as long as PM2 processes are running. - Ports and connection strings must not conflict with existing services.