78 lines
2.4 KiB
Markdown
78 lines
2.4 KiB
Markdown
# Port Exposure Feature - Quick Guide
|
|
|
|
## Overview
|
|
The port exposure feature allows you to expose host ports directly to container ports without requiring domain-based routing. This is useful for internal services, development environments, or any service accessed via IP:port.
|
|
|
|
## How It Works
|
|
- **Traditional Domain Routing**: `https://app.example.com` → Traefik → Container
|
|
- **Port-Based Routing**: `http://<host-ip>:18081` → Traefik → Container
|
|
|
|
## Setup Example
|
|
|
|
### Scenario
|
|
You have an nginx container running and want to expose it on host port 18081:
|
|
```
|
|
CONTAINER ID IMAGE COMMAND PORTS NAMES
|
|
933e8528ec28 nginx:1.29.7 "/docker-entrypoint.…" 80/tcp ph-web-1003-nginx_cntr
|
|
```
|
|
|
|
### Step 1: Create Port Configuration File
|
|
Create `.env.port-18081`:
|
|
```bash
|
|
HOST_PORT="18081"
|
|
CONTAINER_NAME="ph-web-1003-nginx_cntr"
|
|
CONTAINER_PORT="80"
|
|
```
|
|
|
|
### Step 2: Run the Script
|
|
```bash
|
|
curl -s "https://www.ivantito.com/app-pub/demos/test/deploy-rvs-prxy.sh" | bash
|
|
```
|
|
|
|
### Step 3: Access the Service
|
|
```
|
|
http://<your-host-ip>:18081
|
|
```
|
|
|
|
## Batch Setup Example
|
|
|
|
Create multiple port configuration files:
|
|
```
|
|
.env.port-18081
|
|
.env.port-18082
|
|
.env.port-18083
|
|
```
|
|
|
|
Run the script once - it will process all port configs automatically:
|
|
```bash
|
|
curl -s "https://www.ivantito.com/app-pub/demos/test/deploy-rvs-prxy.sh" | bash
|
|
```
|
|
|
|
Expected output:
|
|
```
|
|
[INFO] Found 3 port config files, will process all in batch mode
|
|
[INFO] =========================================
|
|
[INFO] Processing port 1 of 3: .env.port-18081
|
|
[INFO] =========================================
|
|
[INFO] Setting up port exposure: Host port 18081 -> Container nginx-1:80
|
|
[INFO] Port exposure 18081 has been configured in Traefik
|
|
[INFO] Service will be accessible at: http://<host-ip>:18081
|
|
...
|
|
[INFO] Batch processing completed: 3 port(s) processed
|
|
```
|
|
|
|
## Configuration File Location
|
|
Place `.env.port-*` files in the same directory as your `.env` file (current directory or script directory).
|
|
|
|
## Technical Details
|
|
- Creates Traefik entry point for each port
|
|
- Generates dynamic routing configuration
|
|
- No Traefik restart required (auto-loads configuration)
|
|
- Works with any Docker container on the host
|
|
|
|
## Use Cases
|
|
1. **Internal Services**: Admin panels, monitoring dashboards
|
|
2. **Development/Testing**: Quick access without domain setup
|
|
3. **API Services**: Direct port access for API endpoints
|
|
4. **Multiple Services**: Different ports for different containers on same host
|