Visual builder for React. Build apps, websites, and content. Integrate with your codebase.
docker pull library/postgres
docker run -d --name plasmic -p 5432:5432 --restart always postgres:15
podman run -d --name plasmic -p 5432:5432 --restart always postgres:15
skopeo inspect docker://docker.io/library/postgres:15
oras pull postgres:15
docker compose up -d
services:
# PostgreSQL database
plasmic-db:
image: postgres:15
restart: always
environment:
- POSTGRES_PASSWORD=SEKRET
- POSTGRES_USER=wab
- POSTGRES_DB=wab
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./platform/wab/tools/docker-dev/db-setup.bash:/docker-entrypoint-initdb.d/db-setup.sh
healthcheck:
test: ["CMD-SHELL", "pg_isready -U wab"]
interval: 5s
timeout: 10s
retries: 5
# Plasmic WAB (Web App Builder)
plasmic-wab:
build:
context: .
dockerfile: ./platform/wab/tools/docker-dev/Dockerfile.dev.aio
command: # Override the default dockerfile startup command here for debugging purpose
- |
jq '(.host = "plasmic-db") | (.password //= "SEKRET")' ormconfig.json > tmp.json && mv tmp.json ormconfig.json && \
pnpm typeorm migration:run && \
pnpm seed && \
cd /plasmic && \
pnpm dev
volumes:
# 1. Mount your local source code into the container
- .:/plasmic
# 2. Use named volumes to preserve built container files from being overwritten by unbuilt local code
# --- Node Modules (Existing) ---
- plasmic_node_modules:/plasmic/node_modules
# Has the pnpm store that platform/* node_modules symlink into.
- plasmic_platform_node_modules:/plasmic/platform/node_modules
- plasmic_wab_node_modules:/plasmic/platform/wab/node_modules
- plasmic_sub_node_modules:/plasmic/platform/sub/node_modules
- plasmic_canvas_node_modules:/plasmic/platform/canvas-packages/node_modules
- plasmic_live_frame_node_modules:/plasmic/platform/live-frame/node_modules
- plasmic_react_web_bundle_node_modules:/plasmic/platform/react-web-bundle/node_modules
- plasmic_loader_bundle_env_node_modules:/plasmic/platform/loader-bundle-env/node_modules
- plasmic_loader_html_hydrate_node_modules:/plasmic/platform/loader-html-hydrate/node_modules
# --- Generated files ---
- plasmic_public:/plasmic/platform/wab/public
- plasmic_wab_client:/plasmic/platform/wab/src/wab/client
- plasmic_wab_gen:/plasmic/platform/wab/src/wab/gen
- plasmic_wab_shared_model:/plasmic/platform/wab/src/wab/shared/model
- plasmic_generated_styles:/plasmic/platform/wab/src/wab/styles
# --- Build Caches ---
- plasmic_playwright_cache:/home/plasmic/.cache/ms-playwright
ports:
- "3003:3003"
- "3004:3004"
- "3005:3005"
- "9229:9229"
depends_on:
plasmic-db:
condition: service_healthy
environment:
- DATABASE_URI=postgres://wab:SEKRET@plasmic-db:5432/wab
- WAB_DBNAME=plasmic-db
- WAB_DBPASSWORD=SEKRET
- NODE_ENV=development
- POSTGRES_USER=wab
# This environment variable makes file watching more reliable.
- CHOKIDAR_USEPOLLING=true
tty: true
stdin_open: true
volumes:
postgres_data:
plasmic_node_modules:
plasmic_platform_node_modules:
plasmic_wab_node_modules:
plasmic_sub_node_modules:
plasmic_canvas_node_modules:
plasmic_live_frame_node_modules:
plasmic_react_web_bundle_node_modules:
plasmic_loader_bundle_env_node_modules:
plasmic_loader_html_hydrate_node_modules:
plasmic_playwright_cache:
plasmic_generated_styles:
plasmic_public:
plasmic_wab_client:
plasmic_wab_gen:
plasmic_wab_shared_model: