Skip to content

[FEATURE] Add Docker Support for Simplified Execution #5

@ImperatorMarsa

Description

@ImperatorMarsa

Description

This issue proposes adding Docker support to the project. The goal is to provide a reliable and consistent method for running the application, eliminating environment-specific configuration hurdles.

Problem / Motivation

The current process for running the project requires manual installation and configuration of several dependencies. This can be an obstacle for users who wish to run the application without modifying their system environment or dealing with potential dependency conflicts.

Proposed Solution

I have forked the repository and implemented a Docker setup that addresses this challenge. The solution provides a containerized environment to run the project predictably.

The implementation includes:

  1. Dockerfile: Defines the environment and steps to build a runnable image of the application.
  2. GitHub Actions Workflow: An automated pipeline to build and publish the Docker image to GitHub Container Registry (ghcr.io) on every release.
  3. Updated Documentation: Clear instructions in the README.md for running the project with Docker.

Key Features of the Implementation

  • Consistent Execution: The application runs inside an isolated container, ensuring identical behavior regardless of the host machine.
  • Automated Builds: A GitHub Action automatically builds and publishes a ready-to-use Docker image for each release.
  • Simple Startup: Users can run the application with a single docker run command using the pre-built image.

Definition of Done (DoD)

For this feature to be considered complete, the following must be achieved:

  • A Dockerfile is added to the project root.
  • A GitHub Actions workflow (.github/workflows/docker.yml) is added to automate Docker image builds on releases.
  • The README.md is updated with a new "Running with Docker" section containing:
    • Instructions for pulling the pre-built image and running the container with docker run.
    • Instructions for manually building the image from source.
  • The Docker setup works correctly and the application runs as expected.

Additional Context

This implementation is designed to be non-breaking. The traditional method for running the project remains fully functional. The Docker setup is offered as a streamlined, optional alternative.

I have this implementation ready in my fork and am prepared to submit a Pull Request for review once this issue is accepted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions