xmaxcooking / redwood-docker-cli-serve

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deploying RedwoodJS with Docker

Welcome to the RedwoodJS with Docker deployment example repository!

This repository serves as an example for deploying a RedwoodJS application using Docker. The provided Dockerfiles and docker-compose configuration files aim to simplify the process of containerizing your RedwoodJS application.

Prerequisites

  • Redwood requires Node.js (>=18.x) and Yarn (>=1.15)
  • Docker installed on your system
  • Repository Structure

The repository contains the following key Docker-related files in both the api and web directories:

  • Dockerfile: The Docker configuration file for building the Docker image.
  • docker-compose.yml: Docker Compose configuration for orchestrating your Docker containers.
  • entrypoint.sh: Script that runs on container startup. Notably, for the api container, it handles running the database migrations.

Getting Started

Clone the repository and navigate into the project directory:

git clone https://github.com/xmaxcooking/redwood-docker-cli-serve.git
cd your_repository

Building the Docker images can be done using the provided script in package.json:

yarn docker-build

This script is essentially a wrapper around Docker Compose and sets up the necessary Docker containers for both the web and API services.

Notes

  • The api container automatically runs database migrations at startup via the entrypoint.sh script.
  • The global Yarn cache is disabled to speed up local Docker build times.
  • The Dockerfiles provided are not optimized for space. They will copy almost everything from your project into the Docker image. The RedwoodJS team has formed a working group to tackle this optimization and other necessary changes to improve the Docker experience and deployments.
  • If the api service is behind a proxy, some changes may be necessary in the app configuration.
  • The entrypoint.sh script uses arguments to handle Redwood's configuration limitations regarding environment-agnostic variables, such as ports, hosts, and URLs. The Redwood CLI command yarn rw serve has an apiHost argument to circumvent these limitations.

About

License:MIT License


Languages

Language:JavaScript 88.5%Language:CSS 7.4%Language:Dockerfile 2.7%Language:Shell 1.0%Language:HTML 0.5%