Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heiwa4126/hello-distroless-python
Google の distroless でマルチステージビルドの練習
https://github.com/heiwa4126/hello-distroless-python
distroless docker python3
Last synced: 5 days ago
JSON representation
Google の distroless でマルチステージビルドの練習
- Host: GitHub
- URL: https://github.com/heiwa4126/hello-distroless-python
- Owner: heiwa4126
- Created: 2024-07-04T02:13:00.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-07-09T01:23:12.000Z (4 months ago)
- Last Synced: 2024-07-09T05:08:00.065Z (4 months ago)
- Topics: distroless, docker, python3
- Language: Python
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# hello-distroless
Google の distroless でマルチステージビルドの練習。
- [distroless/examples/python3 at main · GoogleContainerTools/distroless](https://github.com/GoogleContainerTools/distroless/tree/main/examples/python3)
- via [distroless/python3/README.md at main · GoogleContainerTools/distroless](https://github.com/GoogleContainerTools/distroless/blob/main/python3/README.md)
- via [GoogleContainerTools/distroless: 🥑 Language focused docker images, minus the operating system.](https://github.com/GoogleContainerTools/distroless/tree/main)で、一番上のリンクから `Dockerfile` と `hello.py` をコピーしてきたもの。
```sh
docker build . -t hello-distroless
docker run --rm hello-distroless
```で /etc の下のファイルが再帰的にリストされる。
`hello.py` は shebang が普通でないので、ローカルでは
```sh
python3 hello.py .
```のように実行する。distroless の Docker 上では shebang は見てない。そもそも shell がない。なので書き換えてもいいかもね。
→ 書き換えましたイメージのサイズは
```console
$ docker images hello-distrolessREPOSITORY TAG IMAGE ID CREATED SIZE
hello-distroless latest 17244fa00d1a About a minute ago 52.8MB
```なので確かに `python:3-slim` よりは 100MB 以上小さい。
`gcr.io/distroless/python3:nonroot-amd64` では
- Python のバージョン - `3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]`
- Python のフルパス - `/usr/bin/python3.11`
- ライブラリパス - `['/app', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload']`でした(2024-07 現在)。ライブラリパスに cwd が入るらしい。
よくわからないのが
「どうやってこのスクリプトが起動してるのか」。あたかも `python hello.py /etc` みたいに起動してるけど。まあそういうものなのだろう。