Utilizing Docker within the development environment of helixml/demo-recipes involves several key configurations and commands. This documentation outlines the necessary steps to set up and manage Docker containers specific to development needs.

Prerequisites

Ensure that Docker is installed and running on your development machine. The following commands are typically used to check if Docker is installed and to confirm its version:

docker --version

Setting Up Development Containers

  1. Clone the Repository

    Begin by cloning the helixml/demo-recipes repository to your local machine:

    git clone https://github.com/helixml/demo-recipes.git
    cd demo-recipes
    
  2. Docker Compose Configuration

    In the root directory, locate the docker-compose.yml file. This file defines the services, networks, and volumes used for your local development setup.

    Here’s an example of the key configurations you might find in docker-compose.yml:

    version: '3'
    
    services:
      app:
        build:
          context: .
        ports:
          - "3000:3000"
        volumes:
          - .:/app
        environment:
          - NODE_ENV=development
    
    • The app service describes the main application.
    • build specifies the context for building the Docker image.
    • ports maps the container’s port 3000 to your local port 3000.
    • volumes mounts your current directory to the /app directory inside the container, allowing real-time synchronization of your code changes.
  3. Creating the Docker Image

    Build the Docker image defined in your Docker Compose configuration. Execute this command in the root of the cloned repository:

    docker-compose build
    
  4. Starting the Development Environment

    Start the services defined in your docker-compose.yml. This command will launch the necessary containers:

    docker-compose up
    

    You can append the -d flag to run the containers in detached mode:

    docker-compose up -d
    
  5. Accessing the Application

    After the containers are up and running, the application should be accessible at http://localhost:3000. Open this URL in your web browser to interact with the application.

  6. Stopping the Containers

    To stop all running services without removing the containers:

    docker-compose stop
    

    If you wish to stop and remove the containers, use:

    docker-compose down
    

Working with Shell Commands

To execute commands directly within a running container, use the exec command as follows. This is particularly useful for running scripts or debugging inside the container:

docker-compose exec app /bin/sh

You can also specify any command to run directly:

docker-compose exec app npm run your-script

Code Hot Reloading

With the volume configuration set up, any changes made to the local files will automatically reflect inside the container. Modifying TypeScript, CSS, or HTML files should trigger a hot reload, depending on your development server’s configuration.

Logging and Monitoring

To view logs from your containers, simply run:

docker-compose logs

You can follow logs for a specific service by using:

docker-compose logs -f app

Cleanup

To free up resources, you may want to remove unused Docker images and volumes. Use the following commands to prune dangling resources:

docker image prune
docker volume prune

Summary

Using Docker within the helixml/demo-recipes development environment streamlines the setup, ensures consistency, and enhances efficiency. By following the configurations and commands detailed above, expert developers can leverage Docker effectively for their local development workflows.

The information herein is sourced from the standard practices surrounding Docker usage in local development environments.