Skip to content

Commit fe9d26b

Browse files
committed
Docs and prod Dockerfile fix.
1 parent 3492a40 commit fe9d26b

File tree

4 files changed

+56
-15
lines changed

4 files changed

+56
-15
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,4 @@ clean:
6363
rm -rf .pytest_cache
6464

6565
docker-clean:
66-
@docker system prune --filter "label=name=$(IMAGE)"
66+
@docker system prune -f --filter "label=name=$(MODULE)"

README.md

+49-8
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,66 @@
22

33
## Running
44

5-
### From Python
5+
### Using Python Interpreter
66
```shell
7-
python3 -m blueprint
7+
~ $ make run
88
```
99

1010
### Using Docker
1111

1212
Development image:
13-
```shell
14-
docker build -t blueprint -f dev.Dockerfile -t blueprint:dev .
15-
docker run blueprint:dev
13+
```console
14+
~ $ make build-dev
15+
~ $ docker images --filter "label=name=blueprint"
16+
REPOSITORY TAG IMAGE ID CREATED SIZE
17+
docker.pkg.github.com/martinheinz/python-project-blueprint/blueprint 3492a40-dirty acf8d09acce4 28 seconds ago 967MB
18+
~ $ docker run acf8d09acce4
19+
Hello World...
1620
```
1721

1822
Production (Distroless) image:
19-
```shell
20-
docker build -t blueprint -f prod.Dockerfile -t blueprint:prod .
21-
docker run blueprint:prod
23+
```console
24+
~ $ make build-prod VERSION=0.0.5
25+
~ $ docker images --filter "label=version=0.0.5"
26+
REPOSITORY TAG IMAGE ID CREATED SIZE
27+
docker.pkg.github.com/martinheinz/python-project-blueprint/blueprint 0.0.5 65e6690d9edd 5 seconds ago 86.1MB
28+
~ $ docker run 65e6690d9edd
29+
Hello World...
30+
```
31+
32+
## Testing
33+
34+
Test are ran every time you build _dev_ or _prod_ image. You can also run tests using:
35+
36+
```console
37+
~ $ make test
38+
```
39+
40+
## Pushing to GitHub Package Registry
41+
42+
```console
43+
~ $ docker login docker.pkg.github.com --username MartinHeinz
44+
Password: ...
45+
...
46+
Login Succeeded
47+
~ $ make push VERSION=0.0.5
2248
```
2349

50+
## Cleaning
51+
52+
Clean _Pytest_ cache:
53+
54+
```console
55+
~ $ make clean
56+
```
57+
58+
Clean _Docker_ images:
59+
60+
```console
61+
~ $ make docker-clean
62+
```
63+
64+
2465
### Resources
2566
- <https://realpython.com/python-application-layouts/>
2667
- <https://dev.to/codemouse92/dead-simple-python-project-structure-and-imports-38c6>

dev.Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends --yes python3-v
55

66
FROM builder AS builder-venv
77

8-
COPY requirements.txt .
8+
COPY requirements.txt /requirements.txt
99
RUN /venv/bin/pip install -r /requirements.txt
1010

1111
FROM builder-venv AS tester

prod.Dockerfile

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM python:3.5-slim AS builder
2-
RUN apt-get update && apt-get install -y --no-install-recommends --yes python3-venv gcc libpython3-dev && \
1+
FROM debian:buster-slim AS builder
2+
RUN apt-get update && \
3+
apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev && \
34
python3 -m venv /venv && \
45
/venv/bin/pip install --upgrade pip
56

67
FROM builder AS builder-venv
7-
8-
COPY requirements.txt .
9-
RUN /venv/bin/pip install -r /requirements.txt
8+
COPY requirements.txt /requirements.txt
9+
RUN /venv/bin/pip install --disable-pip-version-check -r /requirements.txt
1010

1111
FROM builder-venv AS tester
1212

0 commit comments

Comments
 (0)