beeware / beeware/briefcase

Add a Docker packaging format for the Web backend

Open
#2,122 0 comments 0 reactions 0 assignees View on GitHub
enhancement not quite right web
Dominant language
Python
Stars
3.3k
Forks
549
Avg merge
1d 4h
Merged PRs (30d)
40

Description

### What is the problem or limitation you are having?

The static web backend currently generates a big blob of files in a .zip, but leaves it up to the end-user how those files are served.

Docker is a common format for encapsulating a full web app in a pseudo-runnable format.

### Describe the solution you'd like

`briefcase package web` should provide a `-p docker` option to generate a Docker container that can be executed to deploy the packaged app.

### Describe alternatives you've considered

1. Do nothing, and leave deployment entirely up to the end user.

2. Treat this is a *publication* task. `briefcase publish` exists, but is a stub (on all platforms). "Publish to " could make more sense as a point of integration to build and publish a Docker container.

### Additional context

See #2118 for a previous request of this feature.

If we choose to implement this a packaging feature, we would need to pick a web server to use in the Docker container. This is sure to be an area where there are Opinions; it also means that Briefcase puts itself on the critical path of CVEs for problems in whatever web server is selected.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing #2118 and the current output of `briefcase package web`. Decide how the `-p docker` package should select and use a web server, then verify that it produces a runnable Docker container for deploying the packaged app.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
build-system, devops, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.