Skip to content

roelbeerens/turbo-docker-monorepo

 
 

Repository files navigation

turbo-docker-monorepo

Docker commands

Development

docker compose [OPTIONS] COMMAND

Re-build and Re-start project after changing dependencies (development)

docker compose stop && docker compose up -d -V --build --force-recreate

Image testing

Build:

docker build . --file .docker/Dockerfile.nest.prod --tag freelance-core-test --build-arg="APP=core" --build-arg="START_COMMAND=start:prod"

Start:

docker run -p 3001:3001 --env APP=core --env START_COMMAND=start:prod --env IN_CONTAINER=1 freelance-core-test

NextJS differences (from standard boilerplate)

/** @type {import('next').NextConfig} */
const nextConfig = {
  output: "standalone",
};

module.exports = nextConfig;
{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint",
    "server": "node server.js"
  },
  "dependencies": {
    "@types/node": "20.1.7",
    "@types/react": "18.2.6",
    "@types/react-dom": "18.2.4",
    "eslint": "8.40.0",
    "eslint-config-next": "13.4.2",
    "next": "13.4.2",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "typescript": "5.0.4"
  }
}

NestJS differences (from standard boilerplate)

import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
import { exampleFunc } from "shared-module"; // from packages/shared-module

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  exampleFunc();

  await app.listen(
    process.env.PORT || 3333,
    process.env.IN_CONTAINER === "1" ? "0.0.0.0" : "127.0.0.1"
  );
}
bootstrap();

Docker Notes

Follow these steps when adding app dependencies:

1 - Add the dependencies

yarn workspace add APP_NAME DEPENDENCY (or yarn workspace add -D ... for dev deps)

for example,

yarn workspace core add bcrypt

2 - Run docker compose up -d --build --force-recreate for service

docker compose up -d -V --force-recreate --build core

3 - Restart the project (so the nginx service doesn't lose the plot)

docker compose restart

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 49.0%
  • TypeScript 44.7%
  • JavaScript 6.3%