Loading Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -109,5 +109,7 @@ ENV SERVE_CLIENT /home/node/app/packages/client ENV SERVE_ADMIN /home/node/app/packages/admin EXPOSE 3000 # profiler port, only used if profiler is explicity running EXPOSE 9229 ENTRYPOINT [ "/bin/sh" ] CMD [ "./docker-start.sh" ] No newline at end of file docker-compose.yml +2 −0 Original line number Diff line number Diff line Loading @@ -9,9 +9,11 @@ services: build: . ports: - "3000:3000" # - "9229:9229" environment: - REDIS_HOST=redis://redis - DATABASE_URL=postgres://postgres@postgres/canvas # - SCRIPT_TO_RUN=profiler env_file: - .env.local depends_on: Loading docker-start.sh +4 −1 Original line number Diff line number Diff line Loading @@ -3,5 +3,8 @@ # This script runs when the docker image starts # It just forces all migrations to run and then starts lol # Allow running of other scripts via environment variable (eg. profiler) SCRIPT_TO_RUN="${SCRIPT_TO_RUN:-start}" npx -w packages/server npx prisma migrate deploy npm -w packages/server run start No newline at end of file npm -w packages/server run $SCRIPT_TO_RUN No newline at end of file packages/server/package.json +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ "scripts": { "dev": "DOTENV_CONFIG_PATH=.env.local tsx watch -r dotenv/config src/index.ts", "start": "node --enable-source-maps dist/index.js", "profiler": "node --inspect=0.0.0.0:9229 --enable-source-maps dist/index.js", "build": "tsc", "lint": "eslint .", "prisma:studio": "BROWSER=none prisma studio", Loading packages/server/src/workers/worker.ts +21 −12 Original line number Diff line number Diff line Loading @@ -5,7 +5,15 @@ import { getLogger } from "../lib/Logger"; const Logger = getLogger("WORKER_ROOT"); export const spawnWorker = (file: string, wkOpts: WorkerOptions = {}) => { if (process.env.NODE_ENV === "production") file = file.replace(".ts", ".js"); if (process.env.NODE_ENV === "production") { // when compiled we no longer need ts-node as it's already raw JS // replace the file extension so it can load it directly file = path.join(__dirname, file.replace(".ts", ".js")); return new Worker(file, wkOpts); } else { // when in development we just have TS files // this loads TS dynamically when the worker is created // https://github.com/TypeStrong/ts-node/issues/676#issuecomment-531620154 wkOpts.eval = true; Loading @@ -23,6 +31,7 @@ export const spawnWorker = (file: string, wkOpts: WorkerOptions = {}) => { `, wkOpts ); } }; const AllWorkers = { Loading Loading
Dockerfile +2 −0 Original line number Diff line number Diff line Loading @@ -109,5 +109,7 @@ ENV SERVE_CLIENT /home/node/app/packages/client ENV SERVE_ADMIN /home/node/app/packages/admin EXPOSE 3000 # profiler port, only used if profiler is explicity running EXPOSE 9229 ENTRYPOINT [ "/bin/sh" ] CMD [ "./docker-start.sh" ] No newline at end of file
docker-compose.yml +2 −0 Original line number Diff line number Diff line Loading @@ -9,9 +9,11 @@ services: build: . ports: - "3000:3000" # - "9229:9229" environment: - REDIS_HOST=redis://redis - DATABASE_URL=postgres://postgres@postgres/canvas # - SCRIPT_TO_RUN=profiler env_file: - .env.local depends_on: Loading
docker-start.sh +4 −1 Original line number Diff line number Diff line Loading @@ -3,5 +3,8 @@ # This script runs when the docker image starts # It just forces all migrations to run and then starts lol # Allow running of other scripts via environment variable (eg. profiler) SCRIPT_TO_RUN="${SCRIPT_TO_RUN:-start}" npx -w packages/server npx prisma migrate deploy npm -w packages/server run start No newline at end of file npm -w packages/server run $SCRIPT_TO_RUN No newline at end of file
packages/server/package.json +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ "scripts": { "dev": "DOTENV_CONFIG_PATH=.env.local tsx watch -r dotenv/config src/index.ts", "start": "node --enable-source-maps dist/index.js", "profiler": "node --inspect=0.0.0.0:9229 --enable-source-maps dist/index.js", "build": "tsc", "lint": "eslint .", "prisma:studio": "BROWSER=none prisma studio", Loading
packages/server/src/workers/worker.ts +21 −12 Original line number Diff line number Diff line Loading @@ -5,7 +5,15 @@ import { getLogger } from "../lib/Logger"; const Logger = getLogger("WORKER_ROOT"); export const spawnWorker = (file: string, wkOpts: WorkerOptions = {}) => { if (process.env.NODE_ENV === "production") file = file.replace(".ts", ".js"); if (process.env.NODE_ENV === "production") { // when compiled we no longer need ts-node as it's already raw JS // replace the file extension so it can load it directly file = path.join(__dirname, file.replace(".ts", ".js")); return new Worker(file, wkOpts); } else { // when in development we just have TS files // this loads TS dynamically when the worker is created // https://github.com/TypeStrong/ts-node/issues/676#issuecomment-531620154 wkOpts.eval = true; Loading @@ -23,6 +31,7 @@ export const spawnWorker = (file: string, wkOpts: WorkerOptions = {}) => { `, wkOpts ); } }; const AllWorkers = { Loading