Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sgd122/turbo-repo
https://github.com/sgd122/turbo-repo
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sgd122/turbo-repo
- Owner: sgd122
- Created: 2024-08-26T12:17:57.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-08T11:12:37.000Z (4 months ago)
- Last Synced: 2024-09-08T12:52:47.492Z (4 months ago)
- Language: TypeScript
- Size: 1.96 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Turborepo Docker starter
This is an official Docker starter Turborepo.
## Using this example
Run the following command:
```sh
npx create-turbo@latest -e with-docker
```## What's inside?
This Turborepo includes the following:
### Apps and Packages
- `web`: a [Next.js](https://nextjs.org/) app
- `api`: an [Express](https://expressjs.com/) server
- `@repo/ui`: a React component library
- `@repo/logger`: Isomorphic logger (a small wrapper around console.log)
- `@repo/eslint-config`: ESLint presets
- `@repo/typescript-config`: tsconfig.json's used throughout the monorepo
- `@repo/jest-presets`: Jest configurationsEach package/app is 100% [TypeScript](https://www.typescriptlang.org/).
### Docker
This repo is configured to be built with Docker, and Docker compose. To build all apps in this repo:
```
# Install dependencies
yarn install# Create a network, which allows containers to communicate
# with each other, by using their container name as a hostname
docker network create app_network# Build prod using new BuildKit engine
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f docker-compose.yml build# Start prod in detached mode
docker-compose -f docker-compose.yml up -d
```Open http://localhost:3000.
To shutdown all running containers:
```
# Stop all running containers
docker kill $(docker ps -q) && docker rm $(docker ps -a -q)
```### Remote Caching
This example includes optional remote caching. In the Dockerfiles of the apps, uncomment the build arguments for `TURBO_TEAM` and `TURBO_TOKEN`. Then, pass these build arguments to your Docker build.
You can test this behavior using a command like:
`docker build -f apps/web/Dockerfile . --build-arg TURBO_TEAM=“your-team-name” --build-arg TURBO_TOKEN=“your-token“ --no-cache`
### Utilities
This Turborepo has some additional tools already setup for you:
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Jest](https://jestjs.io) test runner for all things JavaScript
- [Prettier](https://prettier.io) for code formatting