ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΊ Π²Π°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌΠΈ, Π²ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ»ΡΡΠΎΠ² ΠΈ ΠΌΠΈΠ½ΡΡΠΎΠ² ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ Dockerfile:
FROM python:3.12.7-slim-bookworm
ΠΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΎΠ±ΡΠ°Π·Π°:
FROM python:3.12.7-slim-bookworm@sha256:d2ead4f6f2ac4b88e44b45a06caea68ad3e2280c0028afcf136e9edfe28c2346
ΠΠ΅Π· Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π· ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· 3 ΠΌΠ΅ΡΡΡΠ°, Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ°Π·.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ»ΠΎΠΌΠΊΠ΅.
Π’Π΅Π³ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ ΠΈΡΠΏΠΎΡΡΠΈΡΡ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python 3.12 ΠΈΠ·Π±Π°Π²ΠΈΠ»Π°ΡΡ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠ° setuptools, Π½ΠΎ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· Docker Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΡΡ pip, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ½ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½.
ΠΠ΄Π½Π°ΠΊΠΎ Π² Π°Π²Π³ΡΡΡΠ΅ 2024 Π³ΠΎΠ΄Π° Π΅Π³ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ.
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Django Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ
ΠΠ° Π±ΡΠΌΠ°Π³Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΅Π³ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ Π±ΠΈΠ»Π΄ΠΎΠ², Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π΄ΠΎΠ²ΠΎΠ΄Ρ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡΡ.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΡΠ΅ΡΠ°ΡΡ Π²Π°ΠΌ, Π½ΠΎ Π²ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²:
ΠΠ»ΡΡΡ
- ΠΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΌΠ°Π»ΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ
- ΠΠ΅Π³ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΡΠΎ Π² git-ΠΊΠΎΠΌΠΌΠΈΡΠ΅
- ΠΠΎΠ»ΡΡΠ΅ ΡΠ°Π½ΡΠΎΠ² ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π°ΡΠ°ΠΊ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΎΠΊ. ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Π±ΡΠ» Π²Π·Π»ΠΎΠΌΠ°Π½ ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π²ΡΠ»ΠΎΠΆΠΈΠ» Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΡΠ΅Π³, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π² Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ.
ΠΠΈΠ½ΡΡΡ
- ΠΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π° Π² Π½Π΅ΠΌ ΡΡΠΎ-ΡΠΎ Π»ΠΎΠΌΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π½ΡΡΠ΅ ΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ.
- ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Snyk ΠΌΠΎΠ»ΡΠ° Π½Π΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π» ΠΎΠ±ΡΠ°Π·Π°, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅ΠΉΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π³Π° ΠΎΠ±ΡΠ°Π·Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker CLI ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Unix:
$ docker manifest inspect python:3.12.7-slim-bookworm -v | grep digest | head -1
Β«digest": Β«sha256:d2ead4f6f2ac4b88e44b45a06caea68ad3e2280c0028afcf136e9edfe28c2346Β»,
# Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ `jq`, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅:
$ docker manifest inspect python:3.12.7-slim-bookworm -v | jq -r Β«.[0].Descriptor.digestΒ»
sha256:d2ead4f6f2ac4b88e44b45a06caea68ad3e2280c0028afcf136e9edfe28c2346
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΠ»ΠΈ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅:
- π³Β ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ΅Π³ΠΈ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Docker
- π³Β ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker
- π³Β ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ Docker
![]()
