Files

100 lines
3.3 KiB
JSON

{
"Web Full Stack Docker Compose": {
"prefix": "web-full-stack-docker-compose",
"description": "Template for web full-stack docker-compose",
"body": [
"---",
"name: ${1:application-name}",
"services:",
" db:",
" image: ${2:postgres:latest}",
" networks:",
" - db-net",
" ports:",
" - ${3:5432}:${3}",
" volumes:",
" - pgdata:/var/lib/postgresql/data",
" environment:",
" - POSTGRES_PASSWORD=${4:postgres-login-password}",
" restart: unless-stopped",
" init: true",
" security_opt:",
" - no-new-privileges",
"",
" api:",
" image: ${5:backend-api-image}",
" build:",
" context: ${6:backend-api-code-directory}",
" dockerfile: ${7:backend-api-dockerfile}",
" networks:",
" - db-net",
" - public-net",
" depends_on:",
" - db",
" ports:",
" - ${8:8080}:${8}",
" environment:",
" - DATABASE_URL=postgres://postgres:${4}@db:${3}/postgres",
" restart: unless-stopped",
" init: true",
" security_opt:",
" - no-new-privileges",
" cap_drop:",
" - ALL",
" cap_add:",
" - CHOWN",
" - NET_BIND_SERVICE",
"",
" frontend-vite:",
" image: ${9:frontend-dev-image}",
" build:",
" context: ${10:frontend-code-directory}",
" dockerfile: ${11:frontend-dev-dockerfile}",
" networks:",
" - public-net",
" depends_on:",
" - api",
" ports:",
" - ${12:5173}:${12}",
" volumes:",
" - ${10}vite.config.js:/usr/src/app/vite.config.js:ro",
" init: true",
" security_opt:",
" - no-new-privileges",
" cap_drop:",
" - ALL",
" cap_add:",
" - CHOWN",
" - NET_BIND_SERVICE",
"",
" frontend-nginx:",
" image: ${13:frontend-nginx-image}",
" build:",
" context: ${10}",
" dockerfile: ${14:frontend-nginx-dockerfile}",
" networks:",
" - public-net",
" depends_on:",
" - api",
" ports:",
" - ${15:2000}:8080",
" restart: unless-stopped",
" init: true",
" security_opt:",
" - no-new-privileges",
" cap_drop:",
" - ALL",
" cap_add:",
" - CHOWN",
" - NET_BIND_SERVICE",
"",
"networks:",
" db-net:",
" public-net:",
"",
"volumes:",
" pgdata:"
]
}
}