Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Requests] Enable Profiles for App Management in Docker Compose v3.9 #1975

Open
deverickapollo opened this issue Jan 27, 2025 · 0 comments

Comments

@deverickapollo
Copy link
Contributor

Summary

Enable support for Docker Compose profiles in Umbrel to allow app developers to start apps using different profiles. This feature will enhance app management by providing more flexibility and control over which services are started by default.

Background:

Docker Compose v3.9 introduced the concept of profiles, which allows developers to define groups of services that can be selectively started. This feature is particularly useful for managing complex applications with multiple services, as it enables developers to control which services are started based on the specified profile.

Currently, Umbrel does not support profiles for Docker Compose v3.9, limiting the ability of app developers to leverage this powerful feature for app management.

Proposal

  • Enable Profile Support: Update Umbrel to support Docker Compose profiles in v3.9. This will allow app developers to define and use profiles in their docker-compose.yml files.

  • Profile Configuration: Provide a mechanism for app developers to specify the default profile and additional profiles that can be used to start the app. This can be done through a configuration file or environment variables.

  • Profile Selection: Allow users to select and start apps using different profiles through the Umbrel interface or CLI. This will enable users to start only the necessary services based on their requirements.

Benefits

  • Flexibility: Profiles provide greater flexibility in managing complex applications with multiple services. Developers can define different profiles for development, testing, and production environments.

  • Resource Optimization: By selectively starting services based on profiles, users can optimize resource usage and reduce the overhead of running unnecessary services.

  • Improved App Management: Profiles enhance app management by allowing developers to control which services are started by default and provide users with the ability to start additional services as needed.

Example Use Case:

An app developer defines a docker-compose.yml file with multiple services, including a database, web server, and background worker. Using profiles, the developer can create separate profiles for development and production environments:

version: '3.9'

services:
  db:
    image: postgres:latest
    profiles:
      - default

  web:
    image: myapp/web:latest
    profiles:
      - default

  worker:
    image: myapp/worker:latest
    profiles:
      - worker

In this example, the db and web services are included in the default profile, while the worker service is included in the worker profile. Users can start the app with the default profile or include the worker profile as needed:

# Start the app with the default profile
docker-compose up

# Start the app with the default and worker profiles
docker-compose --profile worker up
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant