Skip to content

Commit 4f7f05a

Browse files
committed
Versionator Updating versions for python and package.
1 parent 5d53c5f commit 4f7f05a

2 files changed

Lines changed: 158 additions & 38 deletions

File tree

.github/workflows/image-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python_versions: ["3.8", "3.9", "3.10", "3.11", "3.12"]
21-
package_versions: ["0.4.2"]
20+
python_versions: ["3.8", "3.9", "3.10", "3.11", "3.12"]
21+
package_versions: ["0.3.0", "0.3.1", "0.4.0", "0.4.1", "0.4.2"]
2222
target_base: ["full", "slim", "alpine"]
2323
steps:
2424
- name: Checkout repository

README.md

Lines changed: 156 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,39 @@
1-
# QuasiQueue
1+
# python-quasiqueue
22

3-
> [!CAUTION]
4-
> This project is still being setup: don't use it yet.
3+
A multiarchitecture container image for running Python with [QuasiQueue](https://github.com/tedivm/quasiqueue).
4+
5+
Looking for the containers? [Head over to the Github Container Registry](https://github.com/multi-py/python-uvicorn/pkgs/container/python-quasiqueue)!
56

67
<!--ts-->
8+
* [python-quasiqueue](#python-quasiqueue)
9+
* [Benefits](#benefits)
10+
* [Multi Architecture Builds](#multi-architecture-builds)
11+
* [Small Images via Multi Stage Builds](#small-images-via-multi-stage-builds)
12+
* [No Rate Limits](#no-rate-limits)
13+
* [Rapid Building of New Versions](#rapid-building-of-new-versions)
14+
* [Regular Updates](#regular-updates)
15+
* [How To](#how-to)
16+
* [Using the Full Image](#using-the-full-image)
17+
* [Using the Slim Image](#using-the-slim-image)
18+
* [Using the Alpine Image](#using-the-alpine-image)
19+
* [Copy Just the Packages](#copy-just-the-packages)
20+
* [Add Your App](#add-your-app)
21+
* [PreStart Script](#prestart-script)
22+
* [Environmental Variables](#environmental-variables)
23+
* [PORT](#port)
24+
* [LOG_LEVEL](#log_level)
25+
* [MODULE_NAME](#module_name)
26+
* [PRE_START_PATH](#pre_start_path)
27+
* [RELOAD](#reload)
28+
* [Python Versions](#python-versions)
29+
* [Image Variants](#image-variants)
30+
* [Full](#full)
31+
* [Slim](#slim)
32+
* [Alpine](#alpine)
33+
* [Architectures](#architectures)
34+
* [Sponsorship](#sponsorship)
35+
* [Tags](#tags)
36+
* [Older Tags](#older-tags)
737
<!--te-->
838

939
## Benefits
@@ -14,7 +44,6 @@ Every tag in this repository supports these architectures:
1444

1545
* linux/amd64
1646
* linux/arm64
17-
* linux/arm/v7
1847

1948

2049
### Small Images via Multi Stage Builds
@@ -27,63 +56,142 @@ This project uses the Github Container Registry to store images, which have no r
2756

2857
### Rapid Building of New Versions
2958

30-
Within 30 minutes of a new release to TEMPLATE_PYTHON_PACKAGE on PyPI builds will kick off for new containers. This means new versions can be used in hours, not days.
59+
Within 30 minutes of a new release to quasiqueue on PyPI builds will kick off for new containers. This means new versions can be used in hours, not days.
3160

3261
### Regular Updates
3362

3463
Containers are rebuilt weekly in order to take on the security patches from upstream containers.
3564

3665
## How To
3766

38-
### Full
67+
### Using the Full Image
68+
The Full Images use the base Python Docker images as their parent. These images are based off of Ubuntu and contain a variety of build tools.
3969

40-
To pull the latest slim version:
70+
To pull the latest full version:
4171

4272
```bash
43-
docker pull ghcr.io/multi-py/multipy-image-template:py3.10-LATEST
73+
docker pull ghcr.io/multi-py/python-quasiqueue:py3.12-LATEST
4474
```
4575

4676
To include it in the dockerfile instead:
4777

4878
```dockerfile
49-
FROM ghcr.io/multi-py/multipy-image-template:py3.10-LATEST
79+
FROM ghcr.io/multi-py/python-quasiqueue:py3.12-LATEST
5080
```
5181

52-
### Slim
82+
### Using the Slim Image
83+
84+
The Slim Images use the base Python Slim Docker images as their parent. These images are very similar to the Full images, but without the build tools. These images are much smaller than their counter parts but are more difficult to compile wheels on.
5385

5486
To pull the latest slim version:
5587

5688
```bash
57-
docker pull ghcr.io/multi-py/multipy-image-template:py3.10-slim-LATEST
89+
docker pull ghcr.io/multi-py/python-quasiqueue:py3.12-slim-LATEST
5890
```
5991

6092
To include it in the dockerfile instead:
6193

6294
```dockerfile
63-
FROM ghcr.io/multi-py/multipy-image-template:py3.10-slim-LATEST
95+
FROM ghcr.io/multi-py/python-quasiqueue:py3.12-slim-LATEST
6496
```
6597

66-
### Copy Just the Packages
6798

99+
100+
### Using the Alpine Image
101+
102+
The Alpine Images use the base Python Alpine Docker images as their parent. These images use Alpine as their operating system, with musl instead of glibc.
103+
104+
In theory these images are smaller than even the slim images, but this amounts to less than 30mb difference. Additional Python libraries tend not to be super well tested on Alpine. These images should be used with care and testing until this ecosystem matures.
105+
106+
107+
To pull the latest alpine version:
108+
109+
```bash
110+
docker pull ghcr.io/multi-py/python-quasiqueue:py3.12-alpine-LATEST
111+
```
112+
113+
To include it in the dockerfile instead:
114+
115+
```dockerfile
116+
FROM ghcr.io/multi-py/python-quasiqueue:py3.12-alpine-LATEST
117+
```
118+
119+
120+
121+
122+
### Copy Just the Packages
68123
It's also possible to copy just the Python packages themselves. This is particularly useful when you want to use the precompiled libraries from multiple containers.
69124

70125
```dockerfile
71-
FROM python:3.10
126+
FROM python:3.12
72127

73-
COPY --from=ghcr.io/multi-py/multipy-image-template:py3.10-slim-LATEST /usr/local/lib/python3.10/site-packages/* /usr/local/lib/python3.10/site-packages/
128+
COPY --from=ghcr.io/multi-py/python-quasiqueue:py3.12-slim-LATEST /usr/local/lib/python3.12/site-packages/* /usr/local/lib/python3.12/site-packages/
74129
```
75130

131+
### Add Your App
132+
133+
By default the startup script checks for the following packages and uses the first one it can find-
134+
135+
* `/app/app/main.py`
136+
* `/app/main.py`
76137

138+
If you are using pip to install dependencies your dockerfile could look like this-
139+
140+
```dockerfile
141+
FROM ghcr.io/multi-py/python-quasiqueue:py3.12-0.4.2
142+
143+
COPY requirements /requirements
144+
RUN pip install --no-cache-dir -r /requirements
145+
COPY ./app app
146+
```
147+
148+
### PreStart Script
149+
150+
When the container is launched it will run the script at `/app/prestart.sh` before starting the uvicorn service. This is an ideal place to put things like database migrations.
151+
152+
153+
## Environmental Variables
154+
155+
### `PORT`
156+
157+
The port that the application inside of the container will listen on. This is different from the host port that gets mapped to the container.
158+
159+
160+
### `LOG_LEVEL`
161+
162+
The uvicorn log level. Must be one of the following:
163+
164+
* `critical`
165+
* `error`
166+
* `warning`
167+
* `info`
168+
* `debug`
169+
* `trace`
170+
171+
172+
### `MODULE_NAME`
173+
174+
The python module that the container will start. This should be a script that starts QuasiQueue.
175+
176+
177+
### `PRE_START_PATH`
178+
179+
Where to find the prestart script.
180+
181+
182+
### `RELOAD`
183+
184+
When this is set to the string `true` uvicorn is launched in reload mode. If any files change uvicorn will reload the modules again, allowing for quick debugging. This comes at a performance cost, however, and should not be enabled on production machines.
77185

78186
## Python Versions
79187

80188
This project actively supports these Python versions:
81189

190+
* 3.12
191+
* 3.11
82192
* 3.10
83193
* 3.9
84194
* 3.8
85-
* 3.7
86-
* 3.6
87195

88196

89197
## Image Variants
@@ -115,7 +223,6 @@ Every tag in this repository supports these architectures:
115223

116224
* linux/amd64
117225
* linux/arm64
118-
* linux/arm/v7
119226

120227

121228
## Sponsorship
@@ -128,33 +235,46 @@ If you get use out of these containers please consider sponsoring me using Githu
128235
</center>
129236

130237
## Tags
131-
132-
* Recommended Image: `ghcr.io/multi-py/multipy-image-template:py3.10-0.1.1`
133-
* Slim Image: `ghcr.io/multi-py/multipy-image-template:py3.10-slim-0.1.1`
238+
* Recommended Image: `ghcr.io/multi-py/python-quasiqueue:py3.12-0.4.2`
239+
* Slim Image: `ghcr.io/multi-py/python-quasiqueue:py3.12-slim-0.4.2`
134240

135241
Tags are based on the package version, python version, and the upstream container the container is based on.
136242

137-
| TEMPLATE_PYTHON_PACKAGE Version | Python Version | Full Container | Slim Container | Alpine Container |
243+
| quasiqueue Version | Python Version | Full Container | Slim Container | Alpine Container |
138244
|-----------------------|----------------|----------------|----------------|------------------|
245+
| latest | 3.12 | py3.12-latest | py3.12-slim-latest | py3.12-alpine-latest |
246+
| latest | 3.11 | py3.11-latest | py3.11-slim-latest | py3.11-alpine-latest |
139247
| latest | 3.10 | py3.10-latest | py3.10-slim-latest | py3.10-alpine-latest |
140248
| latest | 3.9 | py3.9-latest | py3.9-slim-latest | py3.9-alpine-latest |
141249
| latest | 3.8 | py3.8-latest | py3.8-slim-latest | py3.8-alpine-latest |
142-
| latest | 3.7 | py3.7-latest | py3.7-slim-latest | py3.7-alpine-latest |
143-
| latest | 3.6 | py3.6-latest | py3.6-slim-latest | py3.6-alpine-latest |
144-
| 0.1.1 | 3.10 | py3.10-0.1.1 | py3.10-slim-0.1.1 | py3.10-alpine-0.1.1 |
145-
| 0.1.1 | 3.9 | py3.9-0.1.1 | py3.9-slim-0.1.1 | py3.9-alpine-0.1.1 |
146-
| 0.1.1 | 3.8 | py3.8-0.1.1 | py3.8-slim-0.1.1 | py3.8-alpine-0.1.1 |
147-
| 0.1.1 | 3.7 | py3.7-0.1.1 | py3.7-slim-0.1.1 | py3.7-alpine-0.1.1 |
148-
| 0.1.1 | 3.6 | py3.6-0.1.1 | py3.6-slim-0.1.1 | py3.6-alpine-0.1.1 |
149-
| 0.1.0 | 3.10 | py3.10-0.1.0 | py3.10-slim-0.1.0 | py3.10-alpine-0.1.0 |
150-
| 0.1.0 | 3.9 | py3.9-0.1.0 | py3.9-slim-0.1.0 | py3.9-alpine-0.1.0 |
151-
| 0.1.0 | 3.8 | py3.8-0.1.0 | py3.8-slim-0.1.0 | py3.8-alpine-0.1.0 |
152-
| 0.1.0 | 3.7 | py3.7-0.1.0 | py3.7-slim-0.1.0 | py3.7-alpine-0.1.0 |
153-
| 0.1.0 | 3.6 | py3.6-0.1.0 | py3.6-slim-0.1.0 | py3.6-alpine-0.1.0 |
250+
| 0.4.2 | 3.12 | py3.12-0.4.2 | py3.12-slim-0.4.2 | py3.12-alpine-0.4.2 |
251+
| 0.4.2 | 3.11 | py3.11-0.4.2 | py3.11-slim-0.4.2 | py3.11-alpine-0.4.2 |
252+
| 0.4.2 | 3.10 | py3.10-0.4.2 | py3.10-slim-0.4.2 | py3.10-alpine-0.4.2 |
253+
| 0.4.2 | 3.9 | py3.9-0.4.2 | py3.9-slim-0.4.2 | py3.9-alpine-0.4.2 |
254+
| 0.4.2 | 3.8 | py3.8-0.4.2 | py3.8-slim-0.4.2 | py3.8-alpine-0.4.2 |
255+
| 0.4.1 | 3.12 | py3.12-0.4.1 | py3.12-slim-0.4.1 | py3.12-alpine-0.4.1 |
256+
| 0.4.1 | 3.11 | py3.11-0.4.1 | py3.11-slim-0.4.1 | py3.11-alpine-0.4.1 |
257+
| 0.4.1 | 3.10 | py3.10-0.4.1 | py3.10-slim-0.4.1 | py3.10-alpine-0.4.1 |
258+
| 0.4.1 | 3.9 | py3.9-0.4.1 | py3.9-slim-0.4.1 | py3.9-alpine-0.4.1 |
259+
| 0.4.1 | 3.8 | py3.8-0.4.1 | py3.8-slim-0.4.1 | py3.8-alpine-0.4.1 |
260+
| 0.4.0 | 3.12 | py3.12-0.4.0 | py3.12-slim-0.4.0 | py3.12-alpine-0.4.0 |
261+
| 0.4.0 | 3.11 | py3.11-0.4.0 | py3.11-slim-0.4.0 | py3.11-alpine-0.4.0 |
262+
| 0.4.0 | 3.10 | py3.10-0.4.0 | py3.10-slim-0.4.0 | py3.10-alpine-0.4.0 |
263+
| 0.4.0 | 3.9 | py3.9-0.4.0 | py3.9-slim-0.4.0 | py3.9-alpine-0.4.0 |
264+
| 0.4.0 | 3.8 | py3.8-0.4.0 | py3.8-slim-0.4.0 | py3.8-alpine-0.4.0 |
265+
| 0.3.1 | 3.12 | py3.12-0.3.1 | py3.12-slim-0.3.1 | py3.12-alpine-0.3.1 |
266+
| 0.3.1 | 3.11 | py3.11-0.3.1 | py3.11-slim-0.3.1 | py3.11-alpine-0.3.1 |
267+
| 0.3.1 | 3.10 | py3.10-0.3.1 | py3.10-slim-0.3.1 | py3.10-alpine-0.3.1 |
268+
| 0.3.1 | 3.9 | py3.9-0.3.1 | py3.9-slim-0.3.1 | py3.9-alpine-0.3.1 |
269+
| 0.3.1 | 3.8 | py3.8-0.3.1 | py3.8-slim-0.3.1 | py3.8-alpine-0.3.1 |
270+
| 0.3.0 | 3.12 | py3.12-0.3.0 | py3.12-slim-0.3.0 | py3.12-alpine-0.3.0 |
271+
| 0.3.0 | 3.11 | py3.11-0.3.0 | py3.11-slim-0.3.0 | py3.11-alpine-0.3.0 |
272+
| 0.3.0 | 3.10 | py3.10-0.3.0 | py3.10-slim-0.3.0 | py3.10-alpine-0.3.0 |
273+
| 0.3.0 | 3.9 | py3.9-0.3.0 | py3.9-slim-0.3.0 | py3.9-alpine-0.3.0 |
274+
| 0.3.0 | 3.8 | py3.8-0.3.0 | py3.8-slim-0.3.0 | py3.8-alpine-0.3.0 |
154275

155276

156277
### Older Tags
157278

158-
Older tags are left for historic purposes but do not receive updates. A full list of tags can be found on the package's [registry page](https://github.com/multi-py/multipy-image-template/pkgs/container/multipy-image-template).
159-
279+
Older tags are left for historic purposes but do not receive updates. A full list of tags can be found on the package's [registry page](https://github.com/multi-py/python-quasiqueue/pkgs/container/python-quasiqueue).
160280

0 commit comments

Comments
 (0)