ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ JFrog ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ Π² ΡΠΎΡΡΠ°Π²Π΅ Docker-ΠΎΠ±ΡΠ°Π·Π° «cabotage-app» ΡΠΎΠΊΠ΅Π½, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Python, PyPI ΠΈ Python Software Foundation Π½Π° GitHub. Π’ΠΎΠΊΠ΅Π½ Π±ΡΠ» Π½Π°ΠΉΠ΄Π΅Π½ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ «__pycache__/build.cpython-311.pyc» Ρ ΠΏΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»Π΅ΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ PyPI ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π² 2023 Π³ΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ewdurbin (Ee Durbin), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Python Software Foundation ΠΏΠΎΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠ° ΠΏΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅. Π’ΠΎΠΊΠ΅Π½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ» Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΉ pypi, python, psf ΠΈ pypa. ΠΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ Docker-ΠΎΠ±ΡΠ°Π· Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Docker Hub ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠ° 2023 Π³ΠΎΠ΄Π°, Π° ΡΠ΄Π°Π»ΡΠ½ 11 ΠΈΡΠ½Ρ 2024 Π³ΠΎΠ΄Π° Ρ.Π΅. 16 ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅. 28 ΠΈΡΠ½Ρ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΠΎΡΠΎΠ·Π²Π°Π½.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ Π² Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠ°Ρ , Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ» ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ» Ρ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΠ²ΡΠΎΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΡΠ½ΠΈΠ», ΡΡΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ cabotage-app5 Π½Π° ΡΠ²ΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API GitHub ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· GitHub, ΠΈ ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π»ΠΈΠΌΠΈΡΡ, Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ GitHub, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠΎΠΊΠ΅Π½ Π² ΠΊΠΎΠ΄. ΠΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΡΠ΄Π°Π»ΡΠ½, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ ΡΡΡΠ», ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π° ΠΏΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ Π² ΠΏΡΠ΅Π΄ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Ρ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠΏΠ°Π» Π² docker-ΠΎΠ±ΡΠ°Π·. def _fetch_github_file( — github_repository=»owner/repo», ref=»main», access_token=None, filename=»Dockerfile» + github_repository=»owner/repo», + ref=»main», + access_token=»0d6a9bb5af126f73350a2afc058492765446aaad», + filename=»Dockerfile», ):
ΠΡΠΎΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Python Π°ΡΠ΄ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Π½Π° GitHub Π½Π΅ Π²ΡΡΠ²ΠΈΠ» ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°. Π‘ ΡΡΡΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ 2017 Π³ΠΎΠ΄Π° GitHub ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ CPython, ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π° Π² ΡΡΠΊΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° ΠΌΠΎΠ³Π»ΠΎ Π±Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Python ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ PyPI, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΡΡΠΎΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π±ΡΠΊΠ΄ΠΎΡΠΎΠ² Π² CPython ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ PyPI.
ΠΠ½ΡΠΈΠ΄Π΅Π½Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΠΎΡΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠ΅ΡΠ΅ΠΊ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΡΠ°ΠΉΠ»Π°Ρ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π² Π±ΠΈΠ½Π°ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Python ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ Π² Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
pyc-ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΡΡΡΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru