🐳 НуТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дайдТСсты ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π² Dockerfile

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ…ΡΡˆ Π² ΠΎΠ±Ρ€Π°Π·Π΅ Docker

by itisgood

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ссылок Π½Π° дайдТСст ΠΊ вашим ΠΎΠ±Ρ€Π°Π·Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сборки Π±ΠΎΠ»Π΅Π΅ прСдсказуСмыми, Π²ΠΎΡ‚ нСсколько плюсов ΠΈ минусов ΠΈΡ… использования.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это Π² своСм 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

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запустили эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ваш Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

см. Ρ‚Π°ΠΊΠΆΠ΅:

 

Loading

You may also like

Leave a Comment