Add a Docker packaging format for the Web backend
- 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
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