version: "3.9"
services:
envoy-control-plane:
user: "1026:100"
# Use the Dockerfile in the current directory to build the image
image: docker.jerxie.com/xds-server:latest
# Set a custom container name for easier management
container_name: envoy-control-plane
# Restart policy to ensure the service comes back up unless manually stopped
restart: unless-stopped
# Mount the named volume (defined below) to the /app directory in the container
ports:
- "8090:8080"
- "18000:18000"
volumes:
# Ensure this is mounted read/write for the container
- data_volume:/app/data:rw
command: ["--nodeID", "home", "--config-dir", "/app/data/config","--db","file:/app/data/data.db?_foreign_keys=on", "--enable-cert-issuance", "webroot-path=/app/data/acme"]
# Define the volumes used by the services
volumes:
# Define a named volume for your code
data_volume:
# Use the 'local' driver which supports mounting remote filesystems
driver: local
# Specify the options for the driver
driver_opts:
# Set the filesystem type to NFS
type: "nfs"
# IMPORTANT: YOU MUST replace YOUR_UID and YOUR_GID below with the numeric IDs
# that own the data directory on your NFS server (e.g., 1000).
o: "addr=192.168.68.90,rw,nfsvers=4,uid=1026,gid=100"
# Specify the remote path (device) on the NFS server to mount
device: ":/volume1/docker/envoy-control-plane/data"