chore: add dev containers
This commit is contained in:
parent
e400966117
commit
e344c3e6a4
7
.devcontainer/Dockerfile
Normal file
7
.devcontainer/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
ARG VARIANT=18-bullseye
|
||||||
|
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:${VARIANT}
|
||||||
|
# [Optional] Uncomment this section to install additional OS packages.
|
||||||
|
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
||||||
|
# && apt-get -y install --no-install-recommends <your-package-list-here>
|
||||||
|
|
||||||
|
RUN npm install -g bun
|
17
.devcontainer/devcontainer.json
Normal file
17
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "Comfy Deploy Dev",
|
||||||
|
"dockerComposeFile": "docker-compose.yml",
|
||||||
|
"service": "app",
|
||||||
|
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
|
||||||
|
"postCreateCommand": "cd web && bun install && bun run migrate-local",
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"biomejs.biome",
|
||||||
|
"formulahendry.auto-rename-tag",
|
||||||
|
"bradlc.vscode-tailwindcss",
|
||||||
|
"stivo.tailwind-fold"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
48
.devcontainer/docker-compose.yml
Normal file
48
.devcontainer/docker-compose.yml
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
|
||||||
|
environment:
|
||||||
|
VSCODE_DEV_CONTAINER: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
# Forwards the local Docker socket to the container.
|
||||||
|
- /var/run/docker.sock:/var/run/docker-host.sock
|
||||||
|
# Update this to wherever you want VS Code to mount the folder of your project
|
||||||
|
- ../..:/workspaces:cached
|
||||||
|
|
||||||
|
# Overrides default command so things don't shut down after the process ends.
|
||||||
|
# entrypoint: /usr/local/share/docker-init.sh
|
||||||
|
command: sleep infinity
|
||||||
|
postgres:
|
||||||
|
image: "postgres:15.2-alpine"
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
POSTGRES_DB: verceldb
|
||||||
|
ports:
|
||||||
|
- "5480:5432"
|
||||||
|
pg_proxy:
|
||||||
|
image: ghcr.io/neondatabase/wsproxy:latest
|
||||||
|
environment:
|
||||||
|
APPEND_PORT: "postgres:5432"
|
||||||
|
ALLOW_ADDR_REGEX: ".*"
|
||||||
|
LOG_TRAFFIC: "true"
|
||||||
|
ports:
|
||||||
|
- "5481:80"
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
localstack:
|
||||||
|
image: localstack/localstack:latest
|
||||||
|
environment:
|
||||||
|
SERVICES: s3
|
||||||
|
ports:
|
||||||
|
- 4566:4566
|
||||||
|
volumes:
|
||||||
|
- ../web/aws:/etc/localstack/init/ready.d
|
||||||
|
- ../web/aws:/app/web/aws
|
||||||
|
|
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -2,8 +2,8 @@
|
|||||||
"typescript.tsdk": "node_modules/typescript/lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.codeActionsOnSave": {
|
"editor.codeActionsOnSave": {
|
||||||
"quickfix.biome": true,
|
"quickfix.biome": "explicit",
|
||||||
"source.organizeImports.biome": true
|
"source.organizeImports.biome": "explicit"
|
||||||
},
|
},
|
||||||
"typescript.preferences.importModuleSpecifier": "non-relative",
|
"typescript.preferences.importModuleSpecifier": "non-relative",
|
||||||
"spellright.language": ["en"],
|
"spellright.language": ["en"],
|
||||||
|
@ -9,6 +9,11 @@
|
|||||||
"recommended": true
|
"recommended": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"json": {
|
||||||
|
"parser": {
|
||||||
|
"allowComments": true
|
||||||
|
}
|
||||||
|
},
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
|
@ -12,10 +12,11 @@ let sslMode: string | boolean = process.env.SSL || "require";
|
|||||||
|
|
||||||
if (sslMode === "false") sslMode = false;
|
if (sslMode === "false") sslMode = false;
|
||||||
|
|
||||||
console.log(migrationsFolderName, sslMode);
|
let connectionString = process.env.POSTGRES_URL!;
|
||||||
|
|
||||||
|
const isDevContainer = process.env.VSCODE_DEV_CONTAINER !== undefined;
|
||||||
|
if (isDevContainer) connectionString = connectionString.replace("localhost","host.docker.internal")
|
||||||
|
|
||||||
const connectionString = process.env.POSTGRES_URL!;
|
|
||||||
console.log(connectionString);
|
|
||||||
const sql = postgres(connectionString, { max: 1, ssl: sslMode as any });
|
const sql = postgres(connectionString, { max: 1, ssl: sslMode as any });
|
||||||
const db = drizzle(sql, {
|
const db = drizzle(sql, {
|
||||||
logger: true,
|
logger: true,
|
||||||
|
@ -2,10 +2,18 @@ import * as schema from "./schema";
|
|||||||
import { neonConfig, Pool } from "@neondatabase/serverless";
|
import { neonConfig, Pool } from "@neondatabase/serverless";
|
||||||
import { drizzle as neonDrizzle } from "drizzle-orm/neon-serverless";
|
import { drizzle as neonDrizzle } from "drizzle-orm/neon-serverless";
|
||||||
|
|
||||||
|
const isDevContainer = process.env.REMOTE_CONTAINERS !== undefined;
|
||||||
|
|
||||||
// if we're running locally
|
// if we're running locally
|
||||||
if (process.env.VERCEL_ENV !== "production") {
|
if (process.env.VERCEL_ENV !== "production") {
|
||||||
// Set the WebSocket proxy to work with the local instance
|
// Set the WebSocket proxy to work with the local instance
|
||||||
|
if (isDevContainer) {
|
||||||
|
// Running inside a VS Code devcontainer
|
||||||
|
neonConfig.wsProxy = (host) => `host.docker.internal:5481/v1`;
|
||||||
|
} else {
|
||||||
|
// Not running inside a VS Code devcontainer
|
||||||
neonConfig.wsProxy = (host) => `${host}:5481/v1`;
|
neonConfig.wsProxy = (host) => `${host}:5481/v1`;
|
||||||
|
}
|
||||||
// Disable all authentication and encryption
|
// Disable all authentication and encryption
|
||||||
neonConfig.useSecureWebSocket = false;
|
neonConfig.useSecureWebSocket = false;
|
||||||
neonConfig.pipelineTLS = false;
|
neonConfig.pipelineTLS = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user