services:
db:
image: postgres:14 # Use a specific version of Postgres
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydatabase
volumes:
- postgres_data:/var/lib/postgresql/data # Persist data
ports:
- "5432:5432" # Optional: expose port to host for local tools like pgAdmin
pgadmin:
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: admin@example.com
PGADMIN_DEFAULT_PASSWORD: strong_password
ports:
- "5050:80" # Map host port 5050 to container port 80 access via http://localhost:5050
networks:
- app-network
depends_on:
- db # Ensure pgAdmin starts after the database
nodejs-app:
build: .
ports:
- "3000:3000" # Expose Node.js port
networks:
- app-network
restart: unless-stopped
depends_on:
- db # Ensure db starts first
ngrok:
image: ngrok/ngrok:latest
environment:
NGROK_AUTHTOKEN: ${NGROK_AUTHTOKEN} # Pass authtoken as an environment variable
command:
- "http"
- "nodejs-app:3000" # Target your application service and its port
- "--hostname=${NGROK_DOMAIN}" # Use the reserved domain
ports:
- "4040:4040" # ngrok web UI
networks:
- app-network
restart: unless-stopped
networks:
app-network:
driver: bridge
volumes:
postgres_data:
docker compose with ngrok and postgresql database
Reviewed by Mr.Boonchai
on
ธันวาคม 04, 2568
Rating:
ไม่มีความคิดเห็น:
Thank you