phantom-fleet
Version:
Phantom Fleet: Optimize Docker images with dynamic proxy management.
132 lines (96 loc) • 3.42 kB
Markdown
<p align="center">
<img src="https://raw.githubusercontent.com/StekolschikovV/phantom-fleet/HEAD/logo.jpg" alt="Strapi-Translate" height="100" />
</p>
<div align="center">
<h1>Phantom Fleet</h1>
<p>Optimize Docker images with dynamic proxy management.</p>
<a href="https://www.npmjs.org/package/phantom-fleet">
<img alt="GitHub package.json version (branch)" src="https://img.shields.io/github/package-json/v/StekolschikovV/phantom-fleet/main?filename=package.json&label=npm&logo=npm">
</a>
<a href="https://www.npmjs.org/package/phantom-fleet">
<img src="https://img.shields.io/npm/dm/phantom-fleet.svg" alt="Monthly download on NPM" />
</a>
</div>
<hr/>
Phantom Fleet is a Node.js package that allows you to manage and control Docker images using configuration files. It
acts as a proxy, pausing Docker images when there are no requests and resuming them when requests come in. This package
aims to optimize the running Docker processes to save resources.
**Please note that this is a preliminary version, and I invite users to collaborate on improving the package.**
You can install Phantom Fleet via npm:
```bash
npm install -g phantom-fleet
```
To use Phantom Fleet, you need to create a configuration file (e.g., `apps.json`) with the following format:
```json
{
"apps": [
{
"CONTAINER_NAME": "docker-nginx",
"LOG_START_TEXT": "start worker process",
"TIMEOUT_INACTIVE": 100000,
"IMAGE": "nginx:latest",
"PORT": "80/tcp",
"HOST_PORT": "88",
"TARGET": "http://localhost:88",
"APP_PORT": 3001,
"ENV": [
"VAR1=value1",
"VAR2=value2"
]
}
// Add more applications as needed
]
}
```
- `CONTAINER_NAME`: The name of the Docker image.
- `LOG_START_TEXT`: The text to wait for, indicating that the image has started successfully.
- `TIMEOUT_INACTIVE`: The duration of inactivity after which the image will be paused (in milliseconds).
- `IMAGE`: The Docker image to be used.
- `PORT`: The port opened inside the container.
- `HOST_PORT`: The port opened on the host machine.
- `TARGET`: The address to which requests will be redirected to the Docker image.
- `APP_PORT`: The port on which the application inside the container will work.
- `ENV`: The environment variables of the container.
## Usage
### Starting the Daemon
To run the Phantom Fleet daemon, use the following command:
```bash
phantom-fleet-demon
```
It is recommended to run the daemon using pm2:
```bash
pm2 start phantom-fleet-demon
```
### Managing Applications
Get a list of applications:
```bash
phantom-fleet list
```
Stop all applications:
```bash
phantom-fleet stopAll
```
Stop an application with a specific number:
```bash
phantom-fleet stop N
```
Remove all applications:
```bash
phantom-fleet removeAll
```
Remove an application with a specific number:
```bash
phantom-fleet remove N
```
### Starting Applications from Configuration
To start applications defined in a configuration file, run the following command:
```bash
phantom-fleet start apps.json
```
## Collaboration
As mentioned earlier, this package is open to collaboration and improvements. If you encounter any issues or have
suggestions for optimizing Docker processes and resource savings, feel free to contribute to the project.
Let's work together to make Phantom Fleet even better!