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