Реф установка: Холодильные установки на авто купить в Москве

Содержание

Реф установка Citimax 350

Производительность (по АТР) (Вт)
Высокие обороты – 2400 об/мин 0°C/30°C 3487
-20°C/30°C 1877
Низкие обороты – 1000 об/мин 0°C/30°C 2800
-20°C/30°C 1405
Теплопроизводительность (Вт)
Высокие обороты – 2400 об/мин 18°C/0°C 3530
18°C/-18°C 3100
Воздушный поток (АМСА 21085) (м3/ч) 1150
Вес (Конденсатор + испаритель) (кг) 49
Габаритные размеры (конденсатор) (мм)
Высота
214
Ширина 870
Длина 550
Габаритные размеры (испаритель) (мм)
Высота 170
Ширина 857
Длина
608
Уровень шума (в соответствии с ISO 3744) (dB(A)) 84



Компоненты
Компрессор Тип Поршневой
Модель
Carrier 150
Управление Тип Standart
Хладагент Тип R404A
Объем Сертификация
АТР 10А000110
СЕ/СЕМ Соответствует
PIEK Нет

Холодильно-обогревательная установка V-250 — Мир Купавы

Холодильно-обогревательная установка V-250.

Универсальная холодильная установка V-250 предназначена для обеспечения перевозок на минигрузовиках с объемом кузова 11-23 м3 с температурой от -20 до +12 градусов цельсия, при коэффициенте теплопроводности стенок кузова, равным 0,4 Вт/м3.

Холодильная установка V-250 относится к системам раздельного типа, т.е. конденсатор и испаритель представляют собой два раздельных узла, соединяемых между собой гибкими шлангами через отверстия кузова автомобиля.

Конденсатор может устанавливаться на переднюю стенку кузова автомобиля вертикально, горизонтально, либо на крышу.

Испаритель монтируется внутри кузова автомобиля на стене или потолке.

Компрессор установки V-250 устанавливается в моторном отсеке с приводом от двигателя автомобиля.

Компрессор имеет системы инжекции хладагента Jet Cool и масла Jet Lube, что позволяет значительно увеличить надежность и долговечность установки.

Вспомогательный электродвигатель и компрессор, являющиеся дополнительной частью конденсатора, обеспечивают работу установки V-250 в резервном режиме при подключении к внешнему источнику электропитания. Блок управления установкой монтируется в кабине водителя с удобством эксплуатации и оперативным контролем за показаниями температуры.

Установка V-250 может работать в режиме обогрева. Оборудование, обеспечивающее выполнение этого режима поставляется по дополнительному требованию заказчика.

Модели:

V-250 10:

Охлаждение осуществляется посредством компрессора с приводом от двигателя автомобиля.

V-250 20:

Охлаждение осуществляется как посредством компрессора с приводом от двигателя автомобиля, так и с помощью компрессора с резервным электроприводом.

V-250 40:

Охлаждение осуществляется посредством компрессора с резервным электроприводом.

Все модели обеспечивают осуществление режима оттаивания в автоматическом и ручном режимах.

Технические характеристики:

Холодопроизводительность:

Номинальная холодопроизводительность при температуре окружающей среды +30 С и частоте вращения вала компрессора 2400 об/мин.:

Хладагент R-134a:

Температура воздуха на входе испарителя:

с приводом от двигателя автомобиля: 0 С; -20 С 2440; 11200

с приводом от электродвигателя: 0С -20С 1760; 640

Хладагент R404a:

Температура воздуха на входе испарителя:

с приводом от двигателя автомобиля: 0 С; -20 С; -25 С 2110; 1500; 1280

с приводом от электродвигателя: 0 С; -20 С; -25 С 1620; 12750; 1000.

Теплопроизводительность процесса оттаивания/нагрева при окружающей температуре -20 С, скорости циркуляции теплового агента 11 л/мин при температуре 82 С составляет:

Нагрев тепловым агентом двигателя автомобиля: 4200

Нагрев ТЭНами: 1450 (gоставляется но дополнительному требованию)

Испаритель:

Модель V-250 комплектуется двумя видами испарителей: настенным или потолочным. Эти испарители обеспечивают производительность по потоку воздуха — 1200 м/ч.

Компрессор:

Модель V-250 комплектуется шестициллиндровым компрессором, как в режиме работы от автомобильного двигателя, так и от резервного электропривода, с рабочим объемом 172 см.

По желанию заказчика может поставляться компрессор с рабочим объемом 147 или 131 см с электромагнитной муфтой с напряжением 12 V и диаметром шкива 134 мм.

Электродвигатель:

Вентилятора конденсатора 12V, 0,12 кВт;

Вентилятора испарителя 12V, 0,12 кВт;

Компрессора резервного режима:

220V/1Ф/50Гц/1. 27 кВт

220V/ЗФ/50Гц/1.19 кВт

400V /ЗФ/50Гц /1,19 кВт

Суммарный ток в цепи напряжением 12V составляет 18А.

РЕФ-Сервис — установка, ремонт рефрижераторов — Carrier — РЕФ-Сервис

Если Вы когда-либо сталкивались с использованием, эксплуатацией или закупкой холодильного оборудования, то, скорее всего, знаете, что продукция CARRIER является самой надежной. И действительно, размах, масштаб и ассортимент холодильного оборудования этой глобальной корпоративной организации впечатляет всех клиентов. Приобретая авторефрижератор этой компании, Вы приобретаете, прежде всего, уверенность в ее качестве, а также своевременное техническое обслуживание холодильного оборудования.

Конкурентоспособность компании CARRIER беспрекословна, поскольку практически ни одна компания не может похвастаться такими объемами продаж, которые сочетаются с очень демократичными ценами на продукцию такого уровня качества. Если Вы желаете купить холодильное оборудование оптом, то мы имеем возможность предложить гибкую систему скидок.

Прежде чем Вы решите купить рефрижератор, мы советуем Вам ознакомиться с каждым наименованием холодильных установок отдельно.

Какие особенности холодильного оборудования CARRIER необходимо учитывать при выборе?

Весь ассортимент продукции делится на несколько групп, которые можно просмотреть в каталоге. Существуют холодильные машины, автономные агрегаты, авторефрижераторы, эвтектические агрегаты, регистраторы температуры. Стоимость холодильного оборудования для всех видов продукции зависит от комплектации, гарантийного и послегарантийного обслуживания.

Новые рефрижераторы Carrier Transicold может монтироваться на любые автомобили рефрижераторы и изотермические фургоны, и рассчитана на поддержание температурных режимов в диапазоне температур от -20 до +8 градусов Цельсия. Холодильные автомобильные установки от компании Carrier Transicold значительно экономят полезный объем грузового автомобиля за счет максимально плоского испарителя. Поддержание заданных температурных режимов встроенные в автомобильные рефрижераторы холодильные агрегаты осуществляют в автоматическом режиме. Вмонтированная холодильная установка рефрижератора делает его легко контролируемым и управляемым за счет эффективной автоматики. Модели холодильных агрегатов Carrier Transicold оснащаются микропроцессорным контроллером, на которого возложена задача самодиагностики. С его помощью процесс управления рефрижераторной установкой значительно упрощается. Управлять такой холодильной машиной становится проще.

Для целей внутригородских перевозок компания Carrier Transicold предлагает версию холодильных установок серии Xarios. Холодильные машины этой серии — образец перспективного высокотехнологичного ряда рефрижераторов от компании Carrier Transicold. Уникальная передовая разработка корпорации Carrier Transicold — мульти температурная версия холодильных агрегатов для грузовых фургонов. Известно, что компания Carrier Transicold является родоначальником мульти температурных систем транспорта. Именно в стенах американской корпорации была создана теоретическая база комбинированных транспортных перевозок, которая впоследствии была воплощена в жизнь. Мульти температурная версия установок позволяет поддерживать в изолированных отсеках холодильной машины заданные температуры. К преимуществам новой версии можно отнести пониженный шумовой эффект при работе агрегата, экономичное расходование топлива, максимально упрощенную процедуру эксплуатации, экологическую безопасность. Холодильный агрегат компании Carrier Transicold содержит компоненты, которые могут быть утилизированы.

Наша компания является официальным дистрибьютером холодильных установок Carrier в Москве . Мы предоставляем гаранию на всю продукцию и обеспечиваем полную техническую поддержку наших агрегатов. Также производим полный монтаж холодильных установок и обслуживание холодильного оборудования. Холодильные машины и установки от Carrier Transcicold — это залог надежности и долговечности заказываемой техники.

Сервисное обслуживание холодильного оборудования.

Техническое обслуживание холодильного оборудования CARRIER Transicold составляет отдельную графу в ассортименте услуг компании. У нас работает специально обученная бригада профессионалов, которые осуществляют ремонт и обслуживание холодильного оборудования. CARRIER отличается оперативной доставкой запасных частей для своих агрегатов. Все детали производятся на заводе и являются подлинными. При получении заказанных готовых запчастей сотрудники компании произведут ремонт, монтаж холодильного оборудования в течение 24 часов.

Сервисное обслуживание холодильного оборудования заключается не только в предоставлении гарантии, но и в своевременном оперативном заказе запчастей и комплектующих с их последующей доставкой. Кроме этого, клиенту предоставляется техническая поддержка, сервисное обслуживание и гарантия на продукцию. Если оборудование клиента требует замены некоторых деталей или запчастей, то они будут заказываться исключительно у завода-производителя и обладать высочайшим качеством. Плановый ремонт, монтаж холодильного оборудования будет также входить в список сервисных услуг, которыми Вы сможете воспользоваться. Установка холодильного оборудования проводится специально обученной командой профессионалов, которая строго в назначенный срок произведет монтаж агрегатов у Вас на объекте.

Принцип работы холодильной машины —

Каков принцип действия холодильной машины, и какие процессы происходят во время её работы. Для конечного потребителя холодильного оборудования, человека, которому необходим искусственный холод на его предприятии, будь это хранение или заморозка продукции, кондиционирование помещения или охлаждение молока, воды и т.д., не обязательно детально знать и понимать теорию фазовых превращений в холодильном оборудовании. Но основные знания в этой сфере помогут ему в правильном выборе необходимого холодильного оборудования и поставщика.

 

Также посмотрите принцип работы системы охлаждения жидкостей.

 

Холодильная машина предназначена для забора тепла (энергии) от охлаждаемого тела. Но по закону сохранения энергии, тепло просто так никуда не исчезнет, следовательно, взятую энергию необходимо перенести (отдать).

 

Процесс охлаждения основан на физическом явлении поглощения тепла при кипении (испарении) жидкости (жидкого хладагента). Компрессор холодильной машины предназначен для отсасывания газа из испарителя и сжатия, нагнетания  его в конденсатор. При сжатии и нагревании паров хладагента мы сообщаем им энергию (или тепло), охлаждая и расширяя, мы отбираем энергию. Это основной принцип, на основе которого происходит перенос тепла и работает холодильная установка. В холодильном оборудовании для переноса тепла применяют хладагенты.

 

 

 

Холодильный компрессор 1 отсасывает газообразный хладагент (фреон) из испарителей (теплообменник или возду­хоохладитель) 3, сжимает его и нагнетает в конденсатор 2 (воздушный или водяной). В конденсаторе 2 хладагент конденсируется (охлаждается потоком воздуха от вентилятора или потоком воды) и переходит в жидкое состояние. Из конденсатора 2 жид­кий хладагент (фреон) попадает в ресивер 4, где происходит его накопление. Также ресивер необходим для постоянного поддержания необходимого уровня хладагента. Ресивер оснащен запорными вентилями 19 на входе и выходе.  Из ресивера хладагент поступает в фильтр-осушитель 9, где происходит удаление остатков влаги, приме­сей и загрязнений, после этого проходит через смотровое стекло с индикатором влажности 12, соленоид­ный вентиль 7 и дросселируется терморегулирующим вентилем 17 в испаритель 3.

 

Терморегулирующий вентиль применяется для регулирования подачи хладагента в испаритель

 

В испарителе хладагент кипит, забирая тепло от объекта охлаждения. Пары хладагента из испа­рителя через фильтр на всасывающей магистрали 11, где происходит очис­тка их от загрязнений, и отделитель жидкости 5 поступают в компрессор 1. Затем цикл работы холо­дильной машины повторяется.

 

Отделитель жидкости 5 предотвращает попадание жидкого хладагента в компрессор.

 

Для обеспечения гарантированного возврата масла в картер компрес­сора на выходе из компрессора устанавливаться маслоотделитель 6. При этом масло через запорный вентиль 24, фильтр 10 и смотровое стекло 13 по линии возврата масла поступает в компрессор.

 

Виброизоляторы 25, 26 на всасывающей и нагнетательной магистралях обес­печивают гашение вибраций при работе компрессора и препятствуют их распространению по холо­дильному контуру.

 

Компрессор оснащён картерным нагревателем 21 и двумя запорными вентилями 20.

 

Картерный нагреватель 21 необходим для выпаривания хладагента из масла, предотвращения конденсации хладагента в картере компрессора во время его стоянки и поддержания необходи­мой температуры масла.

 

В холодильных машинах с полугерметичными поршневыми компрессорами, у которых в системе смазки используется масляный насос, применяется реле контроля давления масла 18. Это реле предназначено для аварийного отключения компрессора в случае снижения давления масла в системе смазки.

 

В случае установки агрегата на улице он должен быть допол­нительно укомплектован гидравлическим регулятором давления конденсации, для обеспечения стабильной работы в зимних условиях и поддержания необходимого давления конденсации в холодное время года.

 

Реле высокого давления 14 управляют включением/выключением  вентиляторов конденсатора, для поддержания необходимого давления конденсации.

 

Реле низкого давления 15 управляет включением/выключением компрессора.

 

Аварийное реле высокого и низкого давлений 16 предназначено для аварийного отключения компрессора в случае пониженного или повышенного давления.

 

Schmitz T.KM ONE: прибавление в семействе

Компания Schmitz Cargobull дополнила гамму высокопроизводительных холодильных установок T.KM ONE мультитемпературной версией, позволяющей с одинаковой эффективностью обслуживать до трех температурных зон внутри трейлера. Наш корреспондент познакомился с новинкой в преддверии ее официального вывода на рынок.

Одна из ключевых тенденций продуктового рынка – заметное увеличение спроса на товары категории фреш. Например, в России, согласно экспертным оценкам, потребление свежей продукции с 2012 года увеличилось в 1,5–2 раза и составляет 30-60% от общего числа покупок. Между тем вопросы своевременности и качества поставок, включая обеспечение непрерывности «холодовой цепи» приобретают все большую актуальность. Неудивительно, что рынок рефрижераторной автотехники становится все более высококонкурентным. Как следствие – стремительное развитие высоких технологий.

Для предприятий занимающихся перевозкой медикаментов предлагается специальная версия EXECUTIVE с сертификатом Pharmaserv.

Неотъемлемый элемент стабильности температурного режима — рефрижераторная установка. Разработка и производство холодильных машин всегда считались уделом специализированных компаний. Тот же Schmitz Cargobull до недавнего времени устанавливал на свои рефрижераторные полуприцепы «холодильники» от крупнейших мировых брендов (Carrier и Thermo King). Однако появление собственного продукта в линейке холодильных установок означает дальнейшее развитие концепции Schmitz Cargobull «все из одних рук».

Итак, собственная транспортная холодильная установка Schmitz Cargobull. Ее основными отличиям, согласно официальной информации, являяются улучшенная экономичность, максимальная точность регулировки температуры, долговечность всех компонентов и длительный межсервисный интервал.

Компоновка мотоотсека обеспечивает легкий доступ к узлам, сокращая продолжительность техобслуживания и время простоя.

Основу семейства составляют монотемпературные установки T.KM ONE, холодопроизводительностью до 13 кВт. Разработка этой модели началась в 2007 году, а серийное производство на заводе в Фредене стартовало в 2013 году. Интересно, что в апреле 2014 года установка прошла сертификацию для фармацевтики (сертификат Pharmaserv). Такие рефрижераторы с пакетом EXECUTIVE уже показали свою востребованность на перспективном рынке перевозок медикаментов.

Чуть позже в линейке появилась мультитемпературная версия T.KM One Multitemp, которая позволяет одновременно доставить к месту назначения грузы требующие различного терморежима. Теперь в одном фургоне, разделенном перегородками, можно перевозить и мороженое, и молочные продукты, и фрукты. Предсерийный вариант T.KM ONE Multitemp был продемонстрирован широкой общественности на грузовом салоне IAA-2014 в Ганновере.

Можно делить на три

Версия T.KM One Multitemp позволяет одновременно доставить к месту назначения грузы требующие различного терморежима.

Версия Multitemp предусматривает установку одного или двух (для 3-камерных систем) дополнительных потолочных испарителей D.ZV ONE. Сконструированные по принципу «половина ширины – полная мощность» испарители установлены таким образом, что не уменьшают высоту грузового пространства в свету и не создают препятствий для проезда погрузчика — половина внутреннего пространства трейлера имеет исходную высоту по всей длине.

Следует упомянуть еще несколько фирменных фишек мультитемпературной установки от Schmitz Cargobull: средний испаритель, обслуживающий центральную зону в 3-камерной системе, может поворачиваться на 90 градусов; питающие шлангопроводы встроены в панели крыши; система креплений испарителей обеспечивает легкость дооснащения или замены узла.

Как гибрид

Сверхплоская и компактная конструкция потолочного испарителя D.ZV построена по принципу «половина ширины – полная мощность».

Семейство холодильных агрегатов Schmitz Cargobull для моно- и мультитемпературных режимов имеет прогрессивную систему привода компрессора и вентиляторов – электрическую. Схема силовой установки напоминает последовательный гибрид: источником электроэнергии является генератор переменного тока мощностью 27 кВА, сблокированный с 4-цилиндровым экономичным дизелем. Выбор гибридной технологии обусловлен несколькими причинами. Во-первых, включение вентиляторов напрямую, отдельно от компрессора, позволяет осуществить более равномерное распределение воздуха, в том числе на режиме малой мощности. Во-вторых, для размораживания не требуется сложной системы управления заслонками. Наконец, в–третьих, ходильный контур с электроприводом имеет меньшее число деталей по сравнению с обычной ременной передачей (пока еще более привычной для большинства перевозчиков). Скажем больше, некоторые узлы, требующие регулярного обслуживания, вовсе исключены.

В режиме частичной нагрузке предусмотрена возможность отключения двух цилиндров компрессора. Это позволяет повысить экономичность установки. Попутно решен вопрос оптимизации эксплуатационных расходов: для продления межсервисного интервала увеличены размеры масляного и топливного фильтров, изменена вместимость масляного поддона. Компоновка мотоотсека обеспечивает легкий доступ к компонентам, сокращая продолжительность техобслуживания и время простоя.

Позаботились конструкторы и об операторе. Панель управления холодильным агрегатом имеет крупные и однозначно понятные клавиши для управления режимами холодильной установки. На крупном дисплее отображается выбранная конфигурация, текущий режим и точное значение температуры в каждой зоне. Простые для понимания водителем символы позволяют избежать потенциально дорогостоящих ошибок при выборе режима.

Простые пользовательский интерфейс панели управления позволяет избежать потенциально дорогостоящих ошибок при выборе режима работы установки. Показания индикатора уровня топлива представлены в виде шкалы с девятью зелеными и тремя красными светодиодами.

Пользовательский интерфейс предусматривает настройку практически любого европейского языка. На дисплее можно вывести сервисную информацию, например, последовательность тревожных предупреждений, количество моточасов и срок очередного техобслуживания.

Установка T.KM ONE также получила новый датчик измерения уровня топлива, разработанный подразделением Schmitz Cargobull Telematic. Датчик емкостного типа без механических элементов имеет более высокую точность, чем используемый в обычных системах. Показания индикатора, размещенного на передней стенке полуприцепа, представлены в виде шкалы с девятью зелеными и тремя красными светодиодами. Данные в цифровом виде совместимы с интерфейсом установки, что обеспечивает простоту подключения к имеющимся на борту средствам телематики.

Помимо прочего рефрижераторная установка T.KM ONE получила единую систему сбора данных о работе отдельных холодильных камер, температурных самописцев, измерительных датчиков и других следящих устройств. Передача информации экспедитору и его клиентам осуществляется через портал TrailerConnect, что с одной стороны обеспечивает полный контроль технического состояния трейлера и холодильной установки, а с другой — избавляет от необходимости делать распечатки в бумажной форме для прикрепления их транспортной накладной.

Остается добавить, что вывод на рынок системы Т.KM ONE Multitemp с испарителем D.ZV ONE планируется к началу нового отчетного года (апрель 2015 г.). Какая ситуация будет в России – покажет время, но активное обучение авторизованных сервисных партнеров идет уже сейчас.

 

Модуль перезаписи URL-адресов IIS не установлен

  • Статья
  • 2 минуты на чтение
  • 2 участника

Полезна ли эта страница?

да Нет

Любая дополнительная обратная связь?

Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft. Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Установка Microsoft Exchange Server 2016 не может быть продолжена, поскольку на локальном компьютере требуется установка дополнительного программного обеспечения.

Для установки Exchange 2016 (для накопительного пакета обновления за сентябрь 2021 г. и более поздних версий) требуется, чтобы на компьютере был установлен модуль перезаписи URL-адресов IIS 2.1 , прежде чем установка может быть продолжена.

Установка Microsoft Exchange Server 2019 не может быть продолжена, поскольку на локальном компьютере требуется установка дополнительного программного обеспечения.

Для установки Exchange 2019 (для накопительного пакета обновления за сентябрь 2021 г. и более поздних версий) перед продолжением установки на компьютере должен быть установлен модуль перезаписи URL-адресов IIS 2. 1 .

  1. Загрузите и установите: Модуль перезаписи URL версии 2.1. Выберите установщик x64 любого языка.
  2. Выберите повторите на странице Проверка готовности .

Примечание

Если для завершения установки этого обновления требуется перезагрузка, вам потребуется выйти из программы установки Exchange 2016, перезагрузиться и снова запустить программу установки.

Важно

Если модуль перезаписи URL-адресов будет удален после установки, это может привести к зависанию ECP/OWA.

Возникли проблемы?

Обратитесь за помощью на форумах Exchange. Посетите форумы по адресу: Exchange Server.

Обновление универсальной среды выполнения C в Windows (KB2999226) не установлено

  • Статья
  • 2 минуты на чтение
  • 2 участника

Полезна ли эта страница?

да Нет

Любая дополнительная обратная связь?

Отзыв будет отправлен в Microsoft: при нажатии кнопки отправки ваш отзыв будет использован для улучшения продуктов и услуг Microsoft.Политика конфиденциальности.

Представлять на рассмотрение

В этой статье

Установка Microsoft Exchange Server 2016 не может быть продолжена, поскольку локальному компьютеру требуется обновление программного обеспечения. Вам необходимо установить это обновление, прежде чем можно будет продолжить установку Exchange 2016.

Exchange 2016 (для накопительного пакета обновления за сентябрь 2021 г. и более поздних версий) требуется, чтобы на компьютере было установлено обновление для универсальной среды выполнения C в Windows (KB2999226) , прежде чем можно будет продолжить установку.

  1. Загрузка и установка: Универсальная среда выполнения C в Windows (KB2999226)
  2. Выберите повторите на странице Проверка готовности .

Примечание

Если для завершения установки этого обновления требуется перезагрузка, необходимо выйти из программы установки Exchange 2016, перезагрузить компьютер и снова запустить установку.

Возникли проблемы? Обратитесь за помощью на форумы Exchange. Посетите форумы по адресу: Exchange Server.

Установить Docker Compose | Документация Docker

Расчетное время чтения: 8 минут

Ускорение новых функций в Docker Desktop

Docker Desktop позволяет легко создавать, совместно использовать и запускать контейнеры на Mac и Windows так же, как и в Linux.Docker справляется со сложной настройкой и позволяет вам сосредоточиться на написании кода. Благодаря положительной поддержке, которую мы получили в отношении обновлений подписки, мы начали работу над Docker Desktop для Linux, который является вторым по популярности запросом функции в нашей общедоступной дорожной карте. Если вы заинтересованы в раннем доступе, зарегистрируйтесь в нашей программе Developer Preview.

На этой странице содержится информация о том, как установить Docker Compose. Вы можете запускать Compose в macOS, Windows и 64-разрядной версии Linux.

Предпосылки

Docker Compose полагается на Docker Engine для любой значимой работы, поэтому убедитесь, что вы установите Docker Engine локально или удаленно, в зависимости от вашей настройки.

  • В настольных системах, таких как Docker Desktop для Mac и Windows, Docker Compose включены как часть этих настольных установок.

  • В системах Linux сначала установите Докер Двигатель для вашей ОС, как описано на странице Get Docker, а затем вернитесь сюда, чтобы инструкции по установке Compose на Linux-системы.

  • Чтобы запустить Compose от имени пользователя без полномочий root, см. раздел Управление Docker от имени пользователя без полномочий root.

Установить компоновку

Следуйте приведенным ниже инструкциям, чтобы установить Compose на Mac, Windows, Windows Server. 2016 или Linux, или узнайте об альтернативах, таких как использование pip Диспетчер пакетов Python или установка Compose в качестве контейнера.

Установить другую версию

Приведенные ниже инструкции описывают установку текущей стабильной версии. ( v1.29.2 ) Compose. Чтобы установить другую версию Составьте, замените данный номер выпуска на тот, который вы хотите. Инструкции по установке Compose 2.0.0 в Linux см. в разделе Установка Compose 2.0.0 в Linux.

Выпуски

Compose также перечислены и доступны для прямой загрузки на Создайте страницу выпуска репозитория на GitHub.Чтобы установить предварительную версию Compose , см. раздел.

Установите Compose на macOS

Docker Desktop для Mac включает Compose вместе с с другими приложениями Docker, поэтому пользователям Mac не нужно устанавливать Compose отдельно. Инструкции по установке см. в разделе Установка Docker Desktop на Mac.

Установите Compose на настольные системы Windows

Docker Desktop для Windows включает Compose наряду с другими приложениями Docker, поэтому большинству пользователей Windows не нужно установите Compose отдельно.Инструкции по установке см. в разделе Установка Docker Desktop в Windows.

Если вы запускаете демон и клиент Docker непосредственно в Microsoft Windows Server, следуйте инструкциям на вкладке Windows Server.

Установите Compose на Windows Server

Следуйте этим инструкциям, если вы запускаете демон Docker и клиент напрямую. на Microsoft Windows Server и хотите установить Docker Compose.

  1. Запустите PowerShell с повышенными правами (запустите его от имени администратора).Найдите PowerShell, щелкните правой кнопкой мыши и выберите Запуск от имени администратора . Когда вас спросят, хотите ли вы разрешить это приложение чтобы внести изменения в ваше устройство, нажмите Да .

  2. В PowerShell, поскольку GitHub теперь требует TLS1.2, выполните следующее:

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
      

    Затем выполните следующую команду, чтобы загрузить текущую стабильную версию Составить (v1.29.2):

      Invoke-WebRequest "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Windows-x86_64.exe" -UseBasicParsing -OutFile $Env:ProgramFiles\Docker\docker-compose .EXE
      

Примечание . В Windows Server 2019 вы можете добавить исполняемый файл Compose в $Env:ProgramFiles\Docker . Поскольку этот каталог зарегистрирован в системе PATH , вы можете запустить команду docker-compose --version на последующем шаге без дополнительной настройки.

  > Чтобы установить другую версию Compose, замените `1.29.2`
> с той версией Compose, которую вы хотите использовать.
  
  1. Протестируйте установку.

      компоновка докеров --версия
    
    docker-compose версии 1.29.2, сборка 01110ad01
      

Установите Compose в системах Linux

В Linux вы можете загрузить двоичный файл Docker Compose с Создайте страницу выпуска репозитория на GitHub.Следуйте инструкциям по ссылке, которые включают запуск команды curl . в вашем терминале, чтобы загрузить двоичные файлы. Эти пошаговые инструкции также включены ниже.

Для alpine необходимы следующие пакеты зависимостей: py-pip , python3-dev , libffi-dev , openssl-dev , gcc , libc-dev , Rust , Cargo и Сделайте .

  1. Запустите эту команду, чтобы загрузить текущую стабильную версию Docker Compose:

      $ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr /local/bin/docker-compose
      

    Чтобы установить другую версию Compose, замените 1.29.2 с версией Compose, которую вы хотите использовать. Для получения инструкций о том, как установить Compose 2.2.3 в Linux, см. Установка Compose 2.0.0 на Linux

    Если у вас возникли проблемы с установкой curl , см. Вкладка «Альтернативные параметры установки» выше.

  2. Применить исполняемые разрешения к двоичному файлу:

      $ sudo chmod +x /usr/local/bin/docker-compose
      

    Примечание :

    Если команда docker-compose завершается ошибкой после установки, проверьте путь.Вы также можете создать символическую ссылку на /usr/bin или любой другой каталог на вашем пути.

    Например:

      $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
      
  3. При необходимости установите завершение команды для баш и зш снаряд.

  4. Протестируйте установку.

      $ docker-compose --version
    docker-compose версии 1.29.2, сборка 1110ad01
      

Альтернативные варианты установки

Установить с помощью пункта

Для alpine необходимы следующие пакеты зависимостей: PY-PIP , python3-dev , libffi-dev , openssl-dev , gcc , libc-dev , Rust , Cargo и Сделайте .

Compose можно установить из pypi с использованием пункта .Если вы установите используя pip , мы рекомендуем вам использовать virtualenv, потому что многие операционные системы имеют системные пакеты python, которые конфликтуют с docker-compose зависимости. См. виртуальную среду учебник, чтобы получить начал.

  $ pip3 установить docker-compose
  

Если вы не используете virtualenv,

  $ sudo pip установить docker-compose
  
Требуется

pip версии 6.0 или выше.

Установить как контейнер

Compose также можно запустить внутри контейнера из небольшой оболочки сценария bash.К установить compose как контейнер, запустите эту команду:

  $ sudo curl -L --fail https://github.com/docker/compose/releases/download/1.29.2/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
  

Установить предварительные сборки

Если вы хотите попробовать предварительную сборку, вы можете загрузить выпуск кандидатов со страницы выпуска репозитория Compose на GitHub. Следуйте инструкциям по ссылке, которые включают запуск команды curl . в вашем терминале, чтобы загрузить двоичные файлы.

Предварительные версии, собранные из ветки «master», также доступны для загрузки по адресу https://dl.bintray.com/docker-compose/master/.

Предварительные сборки позволяют опробовать новые функции до их выпуска. но может быть менее стабильным.


Модернизация

Если вы обновляете Compose 1.2 или более раннюю версию, удалите или перенесите существующие контейнеры после обновления Compose. Это связано с тем, что по состоянию на версии 1.3, Compose использует метки Docker для отслеживания контейнеров и ваших контейнеры необходимо воссоздать, чтобы добавить метки.

Если Compose обнаруживает контейнеры, созданные без меток, он отказывается для запуска, чтобы у вас не оказалось двух наборов из них. Если вы хотите продолжать использовать ваши существующие контейнеры (например, потому что в них есть объемы данных, которые вы хотите сохранить), вы можете использовать Compose 1.5.x для их переноса со следующими команда:

  $ docker-compose migrate-to-labels
  

В качестве альтернативы, если вы не беспокоитесь об их сохранении, вы можете удалить их. Compose просто создает новые.

  $ docker container rm -f -v myapp_web_1 myapp_db_1 ...
  

Удаление

Чтобы удалить Docker Compose, если вы установили его с помощью curl :

  $ sudo rm /usr/local/bin/docker-compose
  

Чтобы удалить Docker Compose, если вы установили с помощью pip :

  $ pip удалить docker-compose
  

Возникла ошибка «Отказано в доступе»?

Если вы получаете сообщение об ошибке «Отказано в доступе» с помощью любого из вышеуказанных методы, у вас, вероятно, нет необходимых прав для удаления docker-compose .Чтобы принудительно удалить, добавьте sudo к любому из вышеуказанных команды и снова запустите.

Куда идти дальше

компоновка, оркестровка, установка, установка, докер, документация

pip install — документация pip v22.0.4

Описание

Установить пакеты из:

  • PyPI (и другие индексы) с использованием спецификаторов требований.

  • URL проекта VCS.

  • Локальные каталоги проектов.

  • Локальные или удаленные исходные архивы.

pip также поддерживает установку из «файлов требований», которые обеспечивают простой способ указать всю среду для установки.

Обзор

Установка

pip состоит из нескольких этапов:

  1. Определите основные требования. Аргументы, предоставленные пользователем, обрабатываются здесь.

  2. Разрешение зависимостей. Что будет установлено, определяется здесь.

  3. Сборка колес.Все зависимости, которые могут быть, встроены в колеса.

  4. Установите пакеты (и удалите все, что обновляется/заменяется).

Обратите внимание, что pip install предпочитает оставлять установленную версию как есть если не указано --upgrade .

Обработка аргументов

При просмотре устанавливаемых элементов pip проверяет, какой тип элемента каждый в следующем порядке:

  1. URL проекта или архива.

  2. Локальный каталог (который должен содержать setup.py , иначе pip сообщит ошибка).

  3. Локальный файл (архив в формате sdist или wheel, в соответствии с названием соглашения для этих форматов).

  4. Требование, как указано в PEP 440 .

Каждый идентифицированный элемент добавляется к набору требований, которым должны удовлетворять установка.

Определение имени и версии

Для каждого элемента-кандидата pip необходимо знать имя и версию проекта.Для колеса (обозначается расширением файла .whl ), это можно получить из имя файла согласно спецификации Wheel. Для локальных каталогов или явно указанные файлы sdist, команда setup.py egg_info используется для определения метаданные проекта. Для sdist, расположенных через индекс, имя файла анализируется за название и версию проекта (это по идее чуть менее надежно чем с помощью команды egg_info , но избегает загрузки и обработки ненужное количество файлов).

Любой URL-адрес может использовать синтаксис #egg=name (см. Поддержка VCS) для явно указать имя проекта.

Удовлетворение требований

Когда у pip есть набор требований, которые необходимо удовлетворить, он выбирает, какую версию каждое требование для установки с использованием простого правила, что последняя версия, которая удовлетворяет заданным ограничениям, будет установлен (но см. здесь за исключением предварительных версий). Где более одного источника выбранная версия доступна, предполагается, что любой источник приемлем (иначе версии будут отличаться).

Заказ на установку

Примечание

Этот раздел посвящен только порядку установки зависимостей среды выполнения и не применяется для построения зависимостей (они указаны с помощью PEP 518).

Начиная с версии 6.1.0, pip устанавливает зависимости перед их зависимостями, т. е. в «топологический порядок». Это единственный пункт обязательства, который в настоящее время связан заказать. Хотя это может быть случайным совпадением, pip будет устанавливать вещи в порядок аргументов установки или порядок элементов в файл требований, это не обещание.

В случае циклической зависимости (также известной как «круговая зависимость») текущая реализация (которая может измениться позже) такова, что первая встреченный элемент цикла устанавливается последним.

Например, если quux зависит от foo, который зависит от bar, который зависит от baz, который зависит от foo:

Unix/macOS
 $ python -m pip установить quux
...
Установка собранных пакетов baz, bar, foo, quux

$ python -m панель установки pip
...
Установка собранных пакетов foo, baz, bar
 
Окна
 C:\>py -m pip install quux
...
Установка собранных пакетов baz, bar, foo, quux

C:\> py -m панель установки pip
...
Установка собранных пакетов foo, baz, bar
 

До версии 6.1.0 pip не брал на себя никаких обязательств относительно порядка установки.

Решение о топологической установке основано на том принципе, что установки должны выполняться таким образом, чтобы среда оставалась пригодной для использования в любой момент времени. шаг. Это имеет два основных практических преимущества:

  1. Одновременное использование среды во время установки, скорее всего, сработает.

  2. Неудачная установка с меньшей вероятностью приведет к повреждению среды. Хотя пип в конечном итоге хотел бы поддерживать откаты при сбоях, в то же время это улучшение.

Хотя новый порядок установки не предназначен для замены (и не заменяет) использование setup_requires для объявления зависимостей сборки, это может помочь некоторым проекты, устанавливаемые из sdist (ранее это могло привести к сбою), которые соответствуют следующим профиль:

  1. У них есть зависимости сборки, которые также объявлены как зависимости установки используя install_requires .

  2. python setup.py egg_info работает без зависимостей сборки установлены.

  3. По какой-то причине они не объявляют или не будут объявлять свои зависимости сборки, используя setup_requires .

Формат файла требований

Этот раздел перемещен в формат файла требований.

Спецификаторы требований

pip поддерживает установку из индекса пакета с использованием требования спецификатор.Вообще говоря, требование спецификатор состоит из имени проекта, за которым следует необязательная версия спецификаторы. PEP 508 содержит полную спецификацию формата требования. Начиная с версии 18.1 pip поддерживает url_req — спецификация формы.

Некоторые примеры:

 Какой-то проект
SomeProject == 1.3
SomeProject >=1.2,<2.0
SomeProject[foo, bar]
SomeProject~=1.4.2
 

Начиная с версии 6.0, pip также поддерживает спецификаторы, содержащие маркеры среды, например:

 НекоторыйПроект ==5.4; python_version < '3.8'
Какой-то проект; sys_platform == 'win32'
 

Начиная с версии 19.3, pip также поддерживает прямые ссылки, например:

 SomeProject @ файл:///где-то/...
 

Маркеры среды поддерживаются в командной строке и в файлах требований.

Примечание

Используйте кавычки вокруг спецификаторов в оболочке при использовании > , < или когда использование маркеров окружения. Не используйте кавычки в файлах требований.

Переопределение по требованию

Начиная с версии 7.0 pip поддерживает управление параметрами командной строки, заданными для setup.py через файлы требований.

Предупреждение

Отключает использование колес (кэшированных или иных).

Параметры --global-option и --install-option используются для передачи параметры setup.py . Например:

 FooProject >= 1.2 --global-option="--no-user-cfg" \
                  --install-option="--prefix='/usr/local'" \
                  --install-option="--без компиляции"
 

Вышеприведенное примерно соответствует запуску установки FooProject .ру скрипт как:

 python setup.py --no-user-cfg install --prefix='/usr/local' --no-compile
 

Обратите внимание, что единственный способ указать более одного параметра для setup.py через несколько --global-option и --install-option параметры, как показано в примере выше. Стоимость каждого варианта передается как один аргумент сценарию setup.py . Следовательно, строка, такая как следующая, недействительна и приведет к ошибка установки.

 # Неверно. Пожалуйста, используйте «--install-option» дважды, как показано выше.
FooProject >= 1.2 --install-option="--prefix=/usr/local --no-compile"
 

Предварительные версии

Начиная с версии 1.4, pip будет устанавливать только стабильные версии, указанные предварительные версии по умолчанию. Если версию нельзя проанализировать как соответствующую PEP 440 версии, то предполагается, что это предварительная версия.

Если спецификатор требования включает предварительную версию или версию для разработки (т.е.грамм. >=0.0.dev0 ), тогда pip разрешит предварительную версию и версию для разработки для этого требования. Это не включает флаг !=.

Команда pip install также поддерживает флаг --pre что позволяет устанавливать предварительные выпуски и выпуски разработки.

Поддержка VCS

Теперь это рассматривается в поддержке VCS.

Поиск пакетов

pip ищет пакеты в PyPI, используя простой HTTP-интерфейс, который задокументирован здесь и там.

pip предлагает ряд опций индекса пакетов для изменения того, как пакеты нашел.

pip ищет пакеты в нескольких местах: на PyPI (если не отключен через --no-index ), в локальной файловой системе и в любых дополнительных репозиториях указывается через --find-links или --index-url . В нем нет порядка местоположения, которые ищутся. Вернее они все проверенные, и "лучшие" соответствует требованиям (с точки зрения номера версии - см. PEP 440 для детали) выбран.

См. примеры установки pip.

Проверка сертификата SSL

Начиная с версии 1.3, pip обеспечивает проверку SSL-сертификата через HTTP для предотвратить атаки «человек посередине» на загрузки PyPI. Это не использует хранилище системных сертификатов, но вместо этого использует связанный сертификат CA хранить. Хранилище сертификатов хранилища сертификатов ЦС по умолчанию может быть переопределяется с помощью параметра --cert или с помощью PIP_CERT , REQUESTS_CA_BUNDLE или CURL_CA_BUNDLE переменные среды.

Кэширование

Теперь это рассматривается в кэшировании.

Багажник для колес

Теперь это рассматривается в кэшировании.

Режим проверки хэша

Начиная с версии 8.0, pip может проверять загруженные архивы пакетов на локальные хэши для защиты от удаленного вмешательства. Чтобы проверить пакет на соответствие одному или больше хэшей, добавьте их в конец строки:

 FooProject == 1.2 --hash=sha256:2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 \
                  --hash=sha256:486ea46224d1bb4fb680f34f7c9ad96a8f24ec88be73ea8e5a6c65260e9cb8a7
 

(Возможность использовать несколько хэшей важна, когда в пакете есть оба бинарные и исходные дистрибутивы или когда он предлагает бинарные дистрибутивы для разнообразие платформ.)

Рекомендуемый хеш-алгоритм на данный момент — sha256, но более сильные разрешено, включая все поддерживаемые hashlib . Однако более слабые такие как md5, sha1 и sha224, исключены, чтобы избежать ложного ощущения безопасность.

Проверка хэша — это решение по принципу «все или ничего». Указание --hash против любого требования не только проверяет этот хеш, но и активирует глобальную режим проверки хэша , который накладывает несколько других ограничений безопасности:

  • Хэши необходимы для всех требований.Это потому, что частично хэшированный файл требований малопригоден и поэтому, вероятно, является ошибкой: вредоносный актер мог подсунуть плохой код в установку через один из нехэшированных требования. Обратите внимание, что хэши, встроенные в требования к URL-стилю через #md5=... Синтаксис достаточен для выполнения этого правила (независимо от хэш-значения). сила, по устаревшим причинам), хотя вы должны использовать более сильную хэш, как sha256, когда это возможно.

  • Хэши требуются для всех зависимостей.Ошибка возникает, если есть зависимость, которая не прописана и не хеширована в файле требований.

  • Требования в форме имен проектов (а не URL-адресов или локальных пути файловой системы) должны быть привязаны к конкретной версии с помощью == . Этот предотвращает неожиданное несоответствие хэшей при выпуске новой версии который соответствует спецификатору требований.

  • --egg запрещен, так как делегирует установку зависимостей к setuptools, отказываясь от возможности pip применять что-либо из вышеперечисленного.

Режим проверки хэшей можно принудительно включить с помощью командной строки --require-hashes опция:

Это может быть полезно в сценариях развертывания, чтобы убедиться, что автор файл требований предоставил хэши. Это также удобный способ загрузки ваш список хэшей, так как он показывает хэши пакетов, которые он извлек. Это извлекает только предпочтительный архив для каждого пакета, поэтому вам все равно может понадобиться добавить хэши для альтернативных архивов, используя pip hash: например, если есть как бинарный, так и исходный дистрибутив.

Кэш колеса отключен в режиме проверки хэша, чтобы предотвратить ложные ошибки несоответствия хэшей. В противном случае это произошло бы во время установка sdists, которые уже были автоматически встроены в кешированные колеса: эти колеса будут выбраны для установки, но их хэши не будут соответствуют sdist из файла требований. Еще одна сложность заключается в том, что колеса местного производства недетерминированы: современные времена модификации делают их путь в архив, делая хэши непредсказуемыми на разных машинах и сбросы кеша.Компиляция кода C добавляет дополнительную недетерминированность, так как многие компиляторы включают в свой вывод случайные значения. Тем не менее, колеса привезли с индексных серверов каждый раз одинаковы. Они попадают в HTTP-кеш pip, а не его колесный кеш и обычно используются в режиме проверки хэша. Единственный недостаток Таким образом, отключение кеша колес - это дополнительное время сборки для sdists, и это можно решить, убедившись, что готовые колеса доступны в индексе. сервер.

Режим проверки хэша также работает с загрузкой пунктов и колесом пунктов.См. «Повторяющиеся установки» для сравнения режима проверки хэша. с другими стратегиями повторяемости.

Предупреждение

Остерегайтесь setup_requires ключевого слова arg в setup.py . То (редкие) пакеты, которые его используют, вызовут загрузку этих зависимостей напрямую с помощью setuptools, минуя проверку хэша pip. Если вам нужно использовать такой пакет, см. Контроллинг настройка_требует.

Предупреждение

Будьте осторожны, чтобы не свести на нет всю работу по обеспечению безопасности при установке фактический проект, используя setuptools напрямую: например, вызвав установка питона.py install , python setup.py development или easy_install . Setuptools с радостью выйдет и загрузит, непроверенный, все, что вы пропустили в своем файле требований — а пропустить что-то легко по мере развития вашего проекта. Чтобы быть в безопасности, установите свой проект, используя pip и --нет-депс.

Вместо python setup.py разработайте , используйте…

Вместо python setup.py install используйте…

Хэши из PyPI

PyPI предоставляет хэш MD5 во фрагментной части каждого URL-адреса загрузки пакета, например #md5=123... , который pip проверяет как защиту от загрузки коррупция. Другие алгоритмы хеширования, которые имеют гарантированную поддержку от hashlib здесь также поддерживаются: sha1, sha224, sha384, sha256 и sha512. Так как это хэш создается удаленно, он не является полезной защитой от несанкционированного доступа и, следовательно, не удовлетворяет требованию --require-hashes , чтобы каждый пакет имел местный хэш.

Локальный проект устанавливает

pip поддерживает установку локального проекта как в обычном, так и в редактируемом режиме.Вы можете установить локальные проекты, указав путь проекта к pip:

Примечание

В зависимости от бэкенда сборки, используемого проектом, это может генерировать вторичные артефакты сборки в каталоге проекта, такие как .egg-info и создают каталоги в случае setuptools бэкенд.

Pip имеет устаревшее поведение, которое копирует весь каталог проекта в временное расположение и установка оттуда. Такой подход стал причиной несколько проблем с производительностью и корректностью, поэтому теперь он отключен по умолчанию, и планируется, что пункт 22.1 удалит его.

Чтобы включить устаревшее поведение, укажите --use-deprecated=out-of-tree-build опция в командной строке pip.

«Редактируемые» установки

«Редактируемые» установки — это, по сути, «режим разработки setuptools». устанавливает.

Вы можете установить локальные проекты или проекты VCS в «редактируемом» режиме:

(Дополнительную информацию о синтаксисе, связанном с VCS, см. в разделе «Поддержка VCS» выше.)

Для локальных проектов файл SomeProject.egg-info» создается относительно путь проекта. Это одно из преимуществ по сравнению с простым использованием setup.py develop , который создает «egg-info» непосредственно относительно текущего рабочего каталога.

Интерфейс системы сборки

Теперь это рассматривается в интерфейсе системы сборки.

предварительная фиксация

Предварительная фиксация

в настоящее время поддерживает хуки, написанные на много языков. Пока ваш репозиторий git является устанавливаемый пакет (gem, npm, pypi и т. д.) или предоставляет исполняемый файл, его можно используется с предварительной фиксацией.Каждый репозиторий git может поддерживать столько языков/хуков, сколько вы хочу.

Ловушка должна завершаться ненулевым значением в случае ошибки или изменения файлов.

Репозиторий git, содержащий подключаемые модули предварительной фиксации, должен содержать файл .pre-commit-hooks.yaml. файл, который сообщает о предварительной фиксации:

идентификатор

идентификатор хука - используется в pre-commit-config.yaml.

имя

название хука - отображается во время выполнения хука.

запись

точка входа - исполняемый файл для запуска. запись также может содержать аргументы, которые не будут переопределены, например запись : autopep8 -i .

язык

язык хука - сообщает pre-commit как установить хук.

файлы

(необязательно: по умолчанию '' ) шаблон файлов для запуска.$ ) исключить файлы , совпавшие с файлами .

типы

(необязательно: по умолчанию [файл] ) список типов файлов для запуска (И). Видеть Фильтрация файлов по типам.

типы_или

(необязательно: по умолчанию [] ) список типов файлов для запуска (ИЛИ). Видеть Фильтрация файлов по типам. новое в версии 2.9.0 .

exclude_types

(необязательно: по умолчанию [] ) шаблон файлов для исключения.

всегда_работа

(необязательно: по умолчанию false ) если true этот хук будет работать, даже если есть нет соответствующих файлов.

отказоустойчивость

(необязательно: по умолчанию false ) если true предварительная фиксация прекратит работу хуки, если этот хук не работает. новое в версии 2.16.0 .

подробный

(необязательный) если true , принудительно выводит вывод хука, даже если крючок проходит. новое в 1.6.0 .

pass_filenames

(необязательно: по умолчанию true ) если false имена файлов не будут переданы крюк.

require_serial

(необязательно: по умолчанию false ) если true этот хук будет выполняться с использованием единый процесс, а не параллельный. новое в версии 1.13.0 .

описание

(опционально: по умолчанию '' ) описание хука.используется для метаданных только цели.

языковая_версия

(опционально: по умолчанию по умолчанию ) см. Переопределение языковой версии.

минимальная_предварительная_фиксация_версия

(необязательно: по умолчанию '0' ) позволяет указать минимум совместимая предварительная версия.

аргументы

(необязательно: по умолчанию [] ) список дополнительных параметров для передачи в хук.

ступени

(необязательно: по умолчанию (все этапы)) ограничивает хук до фиксации , слияние-фиксация , push , prepare-commit-msg , commit-msg , post-checkout , post-commit , после слияния , после перезаписи или вручную этап. Видеть Ограничение хуков для запуска на определенных этапах.

Например:

 - идентификатор: конечный пробел
    имя: Обрезать конечный пробел
    описание: Этот хук обрезает конечные пробелы.запись: замыкающий-пробел-фиксатор
    язык: питон
    типы: [текст]
 

Интерактивная разработка ловушек

Поскольку свойство repo .pre-commit-config.yaml может ссылаться на что угодно что клон git ... понимает, часто бывает полезно указать на локальный каталог при разработке хуков.

pre-commit try-repo упрощает этот процесс, позволяющий быстро опробовать репозиторий. Вот как можно работать интерактивно:

примечание : вам может потребоваться указать --commit-msg-filename при использовании этого команда с типами ловушек prepare-commit-msg и commit-msg .

новое в версии 1.14.0 : фиксация больше не требуется для try-repo на локальном компьютере каталог. предварительная фиксация клонирует любые отслеживаемые незафиксированные изменения.

 ~/work/hook-repo $ git checkout origin/main -b функция

# ... внести некоторые изменения

# новое в 1.14.0: коммит больше не нужен для `try-repo`

# В другом терминале или вкладке

~/work/other-repo $ pre-commit try-repo ../hook-repo foo --verbose --all-files
================================================== ==============================
Использование конфига:
================================================== ==============================
репозитории:
- репо: ../hook-репо
    рев: 84f01ac09fcd8610824f9626a590b83cfae9bcbd
    крючки:
    - идентификатор: фу
================================================== ==============================
[INFO] Инициализация среды для ../hook-repo.
Фу.................................................................. .....................Прошедший
- идентификатор хука: foo
- продолжительность: 0,02 с

Привет от Фу Хук!

 

Поддерживаемые языки

conda

новое в версии 1.21.0

Репозиторий ловушек должен содержать среду .yml , который будет использоваться через conda env create --file environment.yml ... для создания среды.

Язык conda также поддерживает дополнительные_зависимости и передаст любое из значений непосредственно в conda install . Таким образом, этот язык может быть используется с локальными хуками.

новое в версии 2.17.0 : mamba или micromamba можно использовать для установки вместо них через PRE_COMMIT_USE_MAMBA=1 или PRE_COMMIT_USE_MICROMAMBA=1 среда переменные.

Поддержка: хуки conda работают до тех пор, пока в системе установлена ​​ conda двоичный (например, miniconda ). Он был протестирован на Linux, macOS и Windows.

coursier

новое в версии 2.8.0

В репозитории ловушек должна быть папка .pre-commit-channel , и эта папка должна содержать курьер дескрипторы приложений для установки крючка. Для настройки хуков курса, ваш запись должна соответствовать исполняемому файлу, установленному из репозиторий .папка pre-commit-channel .

Поддержка: Известно, что хуки coursier работают на любой системе, имеющей cs . установлен менеджер пакетов. Конкретные приложения, которые вы устанавливаете, могут зависеть в различных версиях JVM обратитесь за пояснениями к документации по хукам. Проверено на линуксе.

дротик

новое в версии 2.15.0

Репозиторий ловушек должен иметь pubspec .yaml -- должен содержать executables раздел, в котором будут перечислены двоичные файлы, которые будут доступны после установки. Сопоставьте запись с исполняемым файлом.

pre-commit создаст каждый исполняемый файл, используя dart compile exe bin/{executable}.dart .

язык: dart также поддерживает Additional_dependencies . чтобы указать версию для зависимости, разделите имя пакета на : :

 дополнительные_зависимости: ['hello_world_dart:1.0,0']
 

Поддержка: дротик известно, что крючки работают на любой системе, которая имеет дротик сдк установлен. Он был протестирован на Linux, macOS и Windows.

docker

Репозиторий ловушек должен иметь файл Dockerfile . Он будет установлен через Сборка докера . .

Для запуска перехватчиков Docker на вашем хосте должен быть запущен механизм Docker. Для при настройке хуков Docker ваша запись должна соответствовать исполняемому внутри контейнера Docker и будет использоваться для переопределения контейнера по умолчанию. входная точка.Ваш Docker CMD не запустится, если предварительная фиксация передает список файлов в качестве аргументов для команды запуска контейнера. Docker позволяет использовать любой язык, который не поддерживается pre-commit как встроенный.

pre-commit автоматически смонтирует источник репозитория как том, используя -v $PWD:/src:rw,Z и установите рабочий каталог, используя --workdir /src .

Поддержка: известно, что хуки Docker работают в любой системе с работающим докер исполняемый файл.Он был протестирован на Linux и macOS. Крючки, которые запустить через boot2docker , как известно, не может вносить изменения в файлы.

Посмотреть этот репозиторий для примера хука на основе Docker.

docker_image

Более легкий подход к хукам docker . docker_image «язык» использует существующие образы докеров для предоставления исполняемых файлов ловушек.

docker_image хуки можно удобно настроить как локальные крючки.

Запись указывает используемый тег Docker. Если изображение имеет ENTRYPOINT определено, ничего особенного для подключения исполняемого файла не требуется. Если в контейнере не указана ENTRYPOINT или вы хотите изменить точка входа, вы также можете указать ее в своей записи .

Например:

 — идентификатор: dockerfile-provides-entrypoint
    имя: ...
    язык: docker_image
    запись: my.registry.example.com/docker-image-1:latest
- идентификатор: dockerfile-no-entrypoint-1
    имя: ...
    язык: docker_image
    запись: --entrypoint my-exe my.registry.example.com/docker-image-2:latest
# Альтернативное эквивалентное решение
- идентификатор: dockerfile-no-entrypoint-2
    имя: ...
    язык: docker_image
    запись: my.registry.example.com/docker-image-3:последний my-exe
 

dotnet

новое в версии 2.8.0

Перехватчики dotnet

устанавливаются с помощью системной установки интерфейса командной строки dotnet.

Репозитории крючков должны содержать инструмент командной строки dotnet, который можно упаковать и установить ed согласно этому пример.Запись должна соответствовать исполняемому файлу, созданному путем сборки репозиторий. Дополнительные зависимости в настоящее время не поддерживаются.

Поддержка: известно, что перехватчики dotnet работают в любой системе, в которой есть dotnet. Установлен интерфейс командной строки. Проверено на линуксе и винде.

сбой

новое в версии 1.11.0

Легкий язык для запрета файлов по имени файла. Язык fail особенно полезно для локальных хуков.

Запись будет напечатана при сбое ловушки. Предлагается предоставить краткое описание имя и более подробные инструкции по исправлению в запись .

Вот пример, который предотвращает любой файл, кроме файлов, оканчивающихся на .rst , из добавляется в каталог изменений :

 - репозиторий: местный
    крючки:
    - идентификатор: журналы изменений-первый
        имя: журналы изменений должны быть первыми
        запись: имена файлов журнала изменений должны заканчиваться на .первый
        язык: провал
        файлы: 'changelog/.*(?
  

golang

Репозиторий ловушек должен содержать исходный код go. Он будет установлен через перейти установить ./... . pre-commit создаст изолированный GOPATH для каждого хука и запись должна соответствовать исполняемому файлу, который будет установлен в Каталог GOPATH bin .

изменено в версии 2.17.0 : ранее иди и получай ./... было использовано

Поддержка: известно, что хуки golang работают на любой системе, которая установлены. Он был протестирован на Linux, macOS и Windows.

lua

новое в версии 2.17.0

Перехватчики Lua устанавливаются вместе с версией Lua, используемой Luarocks.

Поддержка: известно, что хуки Lua работают на любой системе с Luarocks. установлены. Он был протестирован на Linux и macOS, и может работать на Windows.

node

Репозиторий ловушек должен иметь package.json . Он будет установлен через установка нпм. . Установленный пакет предоставит исполняемый файл, который соответствует записи — обычно через bin в package.json.

Поддержка : перехватчики узлов работают без каких-либо зависимостей на уровне системы. Она имеет был протестирован на Linux и macOS, и может работать под cygwin.

новый в 1.5.0 : окна теперь поддерживаются для узловых хуков. В настоящее время python3 только из-за ошибки в cpython.

perl

новое в версии 2.1.0

хуков Perl устанавливаются с помощью системной установки cpan, установщик пакета CPAN который поставляется с Perl.

В репозиториях хуков должно быть что-то, что поддерживает cpan , обычно Makefile.PL или Build.PL , который используется для установки исполняемого файла для используйте в определении запись для вашего хука.Репозиторий будет установлен через cpan-T. (с установленными файлами, хранящимися в вашем кеше перед фиксацией, не загрязняя другие установки Perl).

При указании Additional_dependencies для Perl можно использовать любой из установить форматы аргументов, понятные cpan .

Поддержка: хуки Perl в настоящее время требуют предварительно установленного Perl, включая инструмент cpan в PATH . Он был протестирован на Linux, macOS и Окна.

python

Репозиторий ловушек должен быть установлен через pip install . (обычно либо setup.py или pyproject.toml ). Установленный пакет предоставит исполняемый файл, который будет соответствовать записи — обычно через console_scripts или скриптов в setup.py.

Поддержка: хуки Python работают без каких-либо зависимостей на уровне системы. Это был протестирован на linux, macOS, windows и cygwin.

python_venv

новое в версии 1.9.0

новое в версии 2.4.0 : язык python_venv теперь является псевдонимом python , поскольку virtualenv>=20 создает эквивалентно структурированные среды. Ранее, этот язык создал среды с помощью модуля venv.

Этот язык в конечном итоге будет удален, поэтому предлагается использовать python вместо.

Поддержка: хуки Python работают без каких-либо зависимостей на уровне системы. Это был протестирован на linux, macOS, windows и cygwin.

r

новое в версии 2.11.0

Этот репозиторий ловушек должен иметь файл renv.lock , который будет восстановлен с помощью renv::restore() вкл. установка крюка. Если репозиторий представляет собой пакет R (т. е. имеет тип : пакет в ОПИСАНИЕ ), он установлен.Поддерживаемый синтаксис в записи : Rscript -e {выражение} или Rscript путь/относительный/к/хуку/корню . То R Процесс запуска пропускается (эмуляция --vanilla ), так как вся конфигурация должен быть открыт через args для максимальной прозрачности и переносимости.

При указании дополнительных_зависимостей для R вы можете использовать любой формат аргумента установки, понятный renv::install() .

Опора: r крюки работают до тех пор, пока R установлен и на PATH .Он был протестирован на Linux, macOS и Windows.

ruby ​​

Репозиторий ловушек должен иметь *.gemspec . Он будет установлен через сборка драгоценных камней *.gemspec && установка драгоценных камней *.gem . Установленный пакет будет создать исполняемый файл, который будет соответствовать записи — обычно через исполняемые файлы в вашем gemspec.

Поддержка: ruby ​​hooks работают без каких-либо зависимостей на системном уровне. Она имеет был протестирован на Linux и macOS, и может работать под cygwin.

ржавчина

новое в версии 1.10.0

Крючки ржавчины устанавливаются с помощью системной установки Cargo, официальный пакетный менеджер Rust.

В репозиториях хуков должен быть файл Cargo.toml , который создает хотя бы один двоичный (пример), чье имя должно соответствовать определению записи для вашего хука. Репо будет установлен через cargo install --bins (с двоичными файлами, хранящимися в вашем pre-commit cache, не загрязняя ваши установки Cargo на уровне пользователя).

При указании дополнительных_зависимостей для Rust можно использовать синтаксис {package_name}:{package_version} , чтобы указать новую зависимость библиотеки (используется для build ваш репозиторий хуков ) или специальный синтаксис cli:{package_name}:{package_version} для зависимости CLI (создается отдельно, с бинарными файлами, доступными для использования хуками).

Поддержка: Для хуков Rust в настоящее время требуется предварительно установленная версия Rust. Это был протестирован на Linux, Windows и macOS.

swift

Репозиторий ловушек должен иметь Package.swift . Он будет установлен через быстрая сборка -c выпуск . Запись должна соответствовать исполняемому файлу, созданному построение репозитория.

Поддержка: известно, что хуки swift работают на любой системе, в которой установлены. Он был протестирован на Linux и macOS.

pygrep

новое в версии 1.2.0

Кроссплатформенная реализация grep на python — перехватчики pygrep — это быстро способ написать простой хук, который предотвращает коммиты путем сопоставления файлов.Уточнить регулярное выражение как запись . Запись может быть любым питоном регулярное выражение. Для нечувствительных к регистру регулярных выражений вы можно применить флаг (?i) в качестве начала вашей записи или использовать аргументы : [-i] .

новое в версии 1.8.0 : для многострочных совпадений используйте args: [--multiline] . новое в версии 2.8.0 : чтобы все файлы совпадали, используйте аргументы : [--negate] .

Поддержка: перехватчики pygrep поддерживаются на всех платформах, выполняющих предварительную фиксацию. на.

script

Перехватчики скриптов позволяют писать простые скрипты, проверяющие файлы. То запись должна быть путем относительно корня репозитория ловушек.

Этому типу ловушек не будет предоставлена ​​виртуальная среда для работы — если она нужны дополнительные зависимости, потребитель должен установить их вручную.

Поддержка: поддержка обработчиков скриптов зависит от самих скриптов.

система

Системные ловушки позволяют писать ловушки для исполняемых файлов системного уровня, которые не имеют поддерживаемого языка выше (или имеют специальную среду требования, которые не позволяют им работать изолированно, например, pylint).

Этому типу ловушек не будет предоставлена ​​виртуальная среда для работы — если она нужны дополнительные зависимости, потребитель должен установить их вручную.

Поддержка: поддержка системных хуков зависит от исполняемых файлов.

Все команды предварительной фиксации принимают следующие параметры:

  • --color {auto,always,never} : использовать ли цвет в выводе. По умолчанию авто . новое в версии 1.18.0 : можно переопределить с помощью PRE_COMMIT_COLOR={авто,всегда,никогда} или отключено с помощью TERM=тупой

автоматическое обновление перед фиксацией [параметры]

Автоматическое обновление конфигурации перед фиксацией до последних версий репозиториев.

Опции:

  • --bleeding-edge : вместо этого обновить передний край ветки по умолчанию последней помеченной версии (поведение по умолчанию).
  • --freeze : новое в 1.21.0 : Сохранение «замороженных» хэшей в rev вместо имен тегов.
  • --repo REPO : новый в 1.4.1 : Обновлять только этот репозиторий. новое в версии 1.7.0 : Эта опция может быть указана несколько раз.

Вот несколько примеров вызовов с использованием этого .pre-commit-config.yaml :

 репозиториев:
- репо: https://github.com/pre-commit/pre-commit-hooks
    версия: v2.1.0
    крючки:
    - id: конечный пробел
- репо: https://github.com/asottile/pyupgrade
    версия: v1.25.0
    крючки:
    - идентификатор: pyupgrade
        аргументы: [--py36-плюс]
 
 $ : по умолчанию: обновить до последнего тега в ветке по умолчанию
$ pre-commit autoupdate # по умолчанию: выбрать теги
Обновление https://github.com/pre-commit/pre-commit-hooks... обновление v2.1.0 -> v2.4.0.
Обновление https://github.com/asottile/pyupgrade... обновление v1.25.0 -> v1.25.2.
$ grep версия: .pre-commit-config.yaml
    версия: v2.4.0
    версия: v1.25.2
 
 $ : обновить конкретный репозиторий до последней версии ветки по умолчанию.
$ pre-commit autoupdate --bleeding-edge --repo https://github.com/pre-commit/pre-commit-hooks
Обновление https://github.com/pre-commit/pre-commit-hooks... обновление v2.1.0 -> 5df1a4bf6f04a1ed3a643167b38d502575e29aef.$ grep версия: .pre-commit-config.yaml
    версия: 5df1a4bf6f04a1ed3a643167b38d502575e29aef
    версия: v1.25.0
 
 $ : обновление до замороженных версий
$ автообновление перед фиксацией --freeze
Обновление https://github.com/pre-commit/pre-commit-hooks... обновление v2.1.0 -> v2.4.0 (заморожено).
Обновление https://github.com/asottile/pyupgrade... обновление v1.25.0 -> v1.25.2 (заморожено).
$ grep версия: .pre-commit-config.yaml
    версия: 0161422b4e09b47536ea13f49e786eb3616fe0d7 # заморожено: v2.4.0
    rev: 34a269fd7650d264e4de7603157c10d0a9bb8211 # заморожено: v1.25,2
 

очистка перед фиксацией [параметры]

Очистить кэшированные файлы перед фиксацией.

Опции: (без дополнительных опций)

pre-commit gc [параметры]

новое в версии 1.14.0

Очистить неиспользуемые кэшированные репозитории.

предварительная фиксация хранит кеш установленных репозиториев ловушек, который увеличивается время. Эту команду можно периодически запускать для очистки неиспользуемых репозиториев из каталог кэша.

Опции: (без дополнительных опций)

pre-commit init-templateir DIRECTORY [options]

новое в 1.18.0

Установите сценарий ловушки в каталог, предназначенный для использования с git config init.templateDir .

Опции:

  • -t {до фиксации, до слияния-фиксации, до отправки, подготовки-фиксации-сообщения, фиксации-сообщения, после проверки, после фиксации, после слияния, после перезаписи} , --hook-type {pre-commit, pre-merge-commit, pre-push, prepare-commit-msg, commit-msg, post-checkout, post-commit, post-merge, post-rewrite} : какой тип крючка установить.

Некоторые примеры полезных вызовов:

 git config --global init.каталог шаблонов ~/.git-template
предварительная фиксация init-templateir ~/.git-template
 

Для Windows cmd.exe используйте %HOMEPATH% вместо ~ :

 предварительная фиксация init-templateir %HOMEPATH%\.git-template
 

Для Windows PowerShell используйте $HOME вместо ~ :

 предварительная фиксация init-templateir $HOME\.git-template
 

Теперь всякий раз, когда репозиторий клонируется или создается, в нем будут настроены хуки. уже!

установка перед фиксацией [параметры]

Установка сценария предварительной фиксации.

Опции:

  • -f , --overwrite : заменить все существующие git-хуки на pre-commit сценарий.
  • --install-hooks : Теперь также установите среды для всех доступных хуков. (а не когда они впервые выполняются). См. pre-commit install-hooks .
  • -t {до фиксации, до слияния-фиксации, до отправки, подготовки-фиксации-сообщения, фиксации-сообщения, после проверки, после фиксации, после слияния, после перезаписи} , --hook-type {pre-commit, pre-merge-commit, pre-push, prepare-commit-msg, commit-msg, post-checkout, post-commit, post-merge, post-rewrite} : Укажите, какой тип крючка установить.
  • --allow-missing-config : Хук-скрипты разрешат отсутствующую конфигурацию файл.

Некоторые примеры полезных вызовов:

  • установка перед фиксацией : вызов по умолчанию. Устанавливает сценарий предварительной фиксации вместе с любыми существующими git-хуками.
  • pre-commit install --install-hooks --overwrite : Идемпотентно заменяет существующие скрипты git hook с предварительной фиксацией, а также устанавливает хуки среды.

pre-commit install-hooks [параметры]

Установите все недостающие среды для доступных хуков.Если эта команда или install --install-hooks выполняется, среда каждого хука создается первый раз вызывается хук.

Каждый хук инициализируется в отдельной среде, соответствующей языку. хук написан на. См. поддерживаемые языки.

Эта команда не устанавливает сценарий предварительной фиксации. Чтобы установить скрипт вместе с перехватывать среды одной командой, используйте pre-commit install --install-hooks .

Опции: (без дополнительных опций)

pre-commit migrate-config [параметры]

новое в 1.0,0

Перенесите конфигурацию списка в новый формат конфигурации карты.

Опции: (без дополнительных опций)

pre-commit run [hook-id] [options]

Run hooks.

Опции:

  • [hook-id] : укажите один идентификатор хука для запуска только этого хука.
  • -a , --all-files : запустить все файлы в репозитории.
  • --files [ФАЙЛЫ [ФАЙЛЫ ...]] : конкретные имена файлов для запуска перехватчиков.
  • --from-ref FROM_REF + --to-ref TO_REF : работать с измененными файлами между FROM_REF...TO_REF в git.
    • новое в версии 2.2.0 : до версии 2.2.0 аргументы были --source и --происхождение .
  • --hook-stage ЭТАП : выберите этап для запуска.
  • --show-diff-on-failure : при сбое хуков запустить git diff сразу после этого.
  • -v , --verbose : производить вывод ловушки независимо от успеха. Включить крючок идентификаторы на выходе.

Некоторые примеры полезных вызовов:

  • pre-commit run : это то, что pre-commit запускается по умолчанию при фиксации. Это запустит все хуки для файлов, находящихся на стадии подготовки.
  • pre-commit run --all-files : запустить все хуки для всех файлов. Этот это полезный вызов, если вы используете предварительную фиксацию в CI. и ГОЛОВКА . Эта форма полезна, когда используется в крючке перед получением.

предварительная фиксация образца конфигурации [параметры]

Создание образца .pre-commit-config.yaml .

Опции: (без дополнительных опций)

pre-commit try-repo REPO [параметры]

новое в версии 1.3.0

Попробуйте хуки в репозитории, это полезно для разработки новых хуков. try-repo также можно использовать для тестирования репозитория перед его добавлением в ваша конфигурация. try-repo печатает конфигурацию, которую он генерирует на основе удаленный репозиторий хуков перед запуском хуков.

Опции:

  • REPO : требуется клонируемый репозиторий хуков. Может быть локальным путем на диск.
  • --ref REF : вручную выберите ссылку для запуска, в противном случае HEAD будет использована ревизия.
  • pre-commit try-repo также поддерживает все доступные параметры для предварительный запуск .

Некоторые примеры полезных вызовов:

  • попытка репозитория предварительной фиксации https://github.com/pre-commit/pre-commit-hooks : работает все хуки в последней версии pre-commit/pre-commit-hooks .
  • pre-commit try-repo ../path/to/repo : запустить все хуки в репозитории на диск.
  • pre-commit try-repo ../pre-commit-hooks flake8 : запустить только хук flake8 настроен в локальном репозитории ../pre-commit-hooks .
  • См. pre-commit run для более полезных вызовов run которые также поддерживаются pre-commit try-repo .

удаление перед фиксацией [параметры]

Удаление сценария предварительной фиксации.

Опции:

  • -t {pre-commit, pre-merge-commit, pre-push, prepare-commit-msg, commit-msg, post-checkout, post-commit, post-merge, post-rewrite} , --hook-type {pre-commit, pre-merge-commit, pre-push, prepare-commit-msg, commit-msg, post-checkout, post-commit, post-merge, post-rewrite} : какой тип хука удалить.

Запуск в режиме миграции

По умолчанию, если у вас есть хуки , предварительная установка будет установлена ​​в режим миграции, который запускает как ваши существующие хуки, так и хуки для предварительной фиксации. Чтобы отключить это поведение, передайте -f / --overwrite в команду install . Если вы решите не использовать предварительную фиксацию, предварительная фиксация удаления будет восстановите свои хуки до состояния до установки.

Временное отключение хуков

Не все хуки идеальны, поэтому иногда вам может понадобиться пропустить выполнение одного или несколько крючков. pre-commit решает эту проблему, запрашивая среду SKIP . Переменная. Переменная среды SKIP представляет собой список хуков, разделенных запятыми. идентификаторы Это позволяет вам пропустить один хук вместо --no-verify в весь коммит.

 $ SKIP=flake8 git commit -m "foo"
 

предварительная фиксация во время фиксации

Запуск обработчиков неустановленных изменений может привести как к ложным срабатываниям, так и к ложноотрицательные результаты во время фиксации.предварительная фиксация выполняется только на подготовленном содержимое файлов, временно сохраняя содержимое ваших файлов при фиксации время и скрытие неустановленных изменений во время запуска хуков.

новое в версии 2.4.0 : предварительная фиксация может использоваться для управления перехватчиками после фиксации.

Чтобы использовать перехватчики после фиксации с предварительной фиксацией, выполните:

 $ установка до фиксации --hook-type после фиксации
предварительная фиксация установлена ​​в .git/hooks/post-commit
 

post-commit ловушки срабатывают после успешной фиксации и не могут использоваться для предотвратить фиксацию (вместо этого используйте pre-commit ).С post-commit не работает с файлами, любые хуки должны быть установлены always_run :

 - репозиторий: местный
    крючки:
    - id: пост-коммит-локальный
        имя: после фиксации
        always_run: правда
        этапы: [после фиксации]
        # ...
 

предварительная фиксация во время слияний

Самая большая проблема, с которой мы сталкивались в прошлом, связанные с предварительными фиксациями, была во время слияния Решение конфликта. При работе над очень большими проектами слияние часто приводит к сотням зафиксированных файлов.Мне не нужно цепляться за всех из этих файлов, которые я даже не трогал! Это часто приводило к запуску коммита с --no-verify и позволили ввести реальные ошибки, которые могли иметь хуки пойманный.

Предварительная фиксация

решает эту проблему, запуская перехватчики только для файлов, которые конфликтуют или были редактируется вручную во время разрешения конфликта. Сюда также входят файлы, которые были автоматически объединены git. Git не идеален, и это часто может неявные конфликты (например, с удаленным импортом python).

новое в версии 2.11.0 предварительная фиксация может использоваться для управления перехватчиками после слияния.

Чтобы использовать перехватчики после слияния с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type post-merge
предварительная фиксация установлена ​​в .git/hooks/post-merge
 

Хук срабатывает после успешного слияния git .

предварительная фиксация во время чистых слияний

новое в версии 1.21.0 предварительная фиксация может использоваться для управления перехватчиками перед слиянием.

Чтобы использовать перехватчики pre-merge-commit с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type pre-merge-commit
предварительная фиксация установлена ​​в .git/hooks/pre-merge-commit
 

Ловушка срабатывает после успешного слияния, но до создания фиксации слияния.

Обратите внимание, что вы должны использовать как минимум git 2.24, в котором добавлена ​​поддержка хук pre-merge-commit.

предварительная фиксация во время отправки

Чтобы использовать хуки предварительной отправки с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type pre-push
предварительная фиксация установлена ​​в .git/крючки/пре-пуш
 

Во время отправки предварительная фиксация экспортирует следующие переменные среды:

  • PRE_COMMIT_FROM_REF : удаленная версия, в которую выполняется отправка.
    • новое в 2.2.0 до 2.2.0 переменная была PRE_COMMIT_SOURCE .
  • PRE_COMMIT_TO_REF : локальная версия, которая передается на удаленный сервер.
    • новое в 2.2.0 до 2.2.0 переменная была PRE_COMMIT_ORIGIN .
  • PRE_COMMIT_REMOTE_NAME : новое в версии 2.0.0 на какой пульт нажимается (например, происхождение )
  • PRE_COMMIT_REMOTE_URL : новое в версии 2.0.0 URL удаленного отправлено (например, [электронная почта защищена]:pre-commit/pre-commit .

pre-commit для сообщений фиксации

pre-commit может использоваться для управления перехватчиками commit-msg.

Чтобы использовать перехватчики commit-msg с предварительной фиксацией, выполните:

 $ установка перед фиксацией --hook-type commit-msg
предварительная фиксация установлена ​​в .git/крючки/commit-msg
 

commit-msg Перехватчики можно настроить, установив этапы : [commit-msg] . commit-msg перехватчикам будет передано одно имя файла -- этот файл содержит текущее содержимое сообщения фиксации, которое может быть проверено. Если крючок выходит ненулевым, фиксация будет прервана.

новое в версии 1.16.0 : предварительная фиксация может использоваться для управления перехватчиками prepare-commit-msg.

Чтобы использовать перехватчики prepare-commit-msg с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type prepare-commit-msg
предварительная фиксация установлена ​​в .git/крючки/подготовить-фиксация-msg
 

prepare-commit-msg хуки можно использовать для создания динамических шаблонов для фиксации Сообщения. Перехватчики prepare-commit-msg можно настроить, установив этап: [prepare-commit-msg] . prepare-commit-msg ловушки будут переданы единственное имя файла -- этот файл содержит любое начальное сообщение фиксации (например, из git commit -m "..." или шаблон) и может быть изменен хуком перед отображается редактор. Хук может захотеть проверить GIT_EDITOR=: , как это указывает, что редактор не будет запущен.Если хук выходит из ненулевого значения, фиксация будет прервана.

предварительная фиксация для переключения веток

новое в версии 2.2.0 : предварительная фиксация может использоваться для управления перехватчиками после проверки.

Чтобы использовать перехватчики post-checkout с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type post-checkout
предварительная фиксация установлена ​​в .git/hooks/post-checkout
 

хуки post-checkout могут использоваться для проверки достоверности репозитория, автоматическое отображение отличий от предыдущего HEAD, если оно отличается, или установить свойства метаданных рабочего каталога.С посткасса не работает в файлах любые хуки должны устанавливать always_run :

 - репозиторий: местный
    крючки:
    - идентификатор: post-checkout-local
        Название: После оформления заказа
        always_run: правда
        этапы: [после оформления заказа]
        # ...
 

хуки после проверки имеют три переменные среды, которые они могут проверять. делать свою работу: $PRE_COMMIT_FROM_REF , $PRE_COMMIT_TO_REF , и $PRE_COMMIT_CHECKOUT_TYPE .Они соответствуют первому, второму, и третьи аргументы (соответственно), которые обычно передаются в обычный пост-кассовый хук из Git.

предварительная фиксация для перезаписи

новое в версии 2.15.0 : предварительная фиксация может использоваться для управления хуками после перезаписи.

Чтобы использовать перехватчики после перезаписи с предварительной фиксацией, выполните:

 $ pre-commit install --hook-type post-rewrite
предварительная фиксация установлена ​​в .git/hooks/post-rewrite
 

после перезаписи запускается после команд git, которые изменяют историю, например git commit --amend и git rebase .

т.к. пост-перезапись не действует ни на какие файлы, необходимо установить always_run: правда .

git сообщает хуку post-rewrite , какая команда вызвала перезапись. pre-commit показывает это как $PRE_COMMIT_REWRITE_COMMAND .

Ограничение хуков для запуска на определенных этапах

.pre-commit-config.yaml установлен на все этапы по умолчанию, при установке ловушки с использованием опции -t / --hook-type (см. install [options]), все хуки будут установлены по умолчанию для запуска на этапе, определенном с помощью этой опции. Например, pre-commit install --hook-type pre-push установит по умолчанию все хуки для запуска на стадии push .

Однако

хуки могут быть привязаны к сцене путем установки стадий собственности в вашем .предварительная фиксация-config.yaml . Свойство этапов представляет собой массив и может содержать любой из commit , merge-commit , push , prepare-commit-msg , commit-msg , post-checkout , post-commit , post-merge , post-rewrite и manual .

Если вы не хотите, чтобы хуки устанавливались по умолчанию на пройденном этапе во время предварительной фиксации install --hook-type ... , пожалуйста, установите default_stages свойство конфигурации верхнего уровня на нужные этапы, а также в виде массива.

новое в версии 1.8.0 : Дополнительный ручной этап доступен для одноразового исполнения. который не будет работать ни в каком контексте хука. Этот специальный этап полезен для взятия преимущество pre-commit кросс-платформенное / кросс-языковое управление пакетами не запуская его при каждом коммите. Крючки ограничены этапами: [ручной] может выполняться путем запуска pre-commit run --hook-stage manual [hookid] .

Передача аргументов хукам

Иногда хукам для корректной работы требуются аргументы. Вы можете передать статический аргументы, указав свойство args в вашем .pre-commit-config.yaml следующим образом:

 — репо: https://github.com/PyCQA/flake8
    версия: 4.0.1
    крючки:
    - идентификатор: flake8
        аргументы: [--max-line-length=131]
 

Это передаст --max-line-length=131 в flake8 .

Шаблон аргументов в хуках

Если вы пишете свой собственный хук, ваш хук должен получать значение args , а затем список промежуточных файлов.

Например, предположим, что .pre-commit-config.yaml :

 — репо: https://github.com/path/to/your/hook/repo
    rev: badf00ddeadbeef
    крючки:
    - id: мой-хук-скрипт-идентификатор
        аргументы: [--myarg1=1, --myarg1=2]
 

При следующем запуске pre-commit ваш скрипт будет называться:

 путь/к/script-or-system-exe --myarg1=1 --myarg1=2 каталог/файл1 каталог/файл2 файл3
 

Если свойство args пусто или не определено, ваш сценарий будет вызываться:

 путь/к/script-or-system-exe каталог/файл1 каталог/файл2 файл3
 

При создании локальных хуков нет причин указывать аргументы команды в args , так как ничто не может их переопределить -- вместо этого поместите свои аргументы непосредственно в хук запись .требования.*.txt$

Локальные ловушки репозитория

Локальные ловушки репозитория полезны, когда:

  • Скрипты тесно связаны с репозиторием и имеет смысл распространять хуки-скрипты вместе с репозиторием.
  • Для хуков требуется состояние, которое присутствует только во встроенном артефакте вашего репозиторий (например, virtualenv вашего приложения для pylint).
  • В официальном репозитории линтера отсутствуют метаданные перед фиксацией.

Вы можете настроить локальные ловушки репозитория, указав репозиторий в качестве дозорный местный .

локальные хуки могут использовать любой язык, который поддерживает дополнительные_зависимости или docker_image / сбой / pygrep / скрипт / система . Это позволяет вам устанавливать вещи, которые ранее требовали тривиального зеркальный репозиторий.

Локальный хук должен определять id , имя , язык , запись и файлы / типов как указано в разделе «Создание новых хуков».

Вот пример конфигурации с несколькими локальными хуками :

 - репозиторий: местный
    крючки:
    - идентификатор: пилинт
        имя: пилинт
        запись: пилин
        язык: система
        типы: [питон]
        require_serial: правда
    - идентификатор: проверить-x
        имя: Чек X
        запись: ./bin/check-x.sh
        язык: скрипт
        файлы: \.x$
    - идентификатор: scss-lint
        имя: scss-lint
        запись: scss-lint
        язык: рубиновый
        языковая_версия: 2.1,5
        типы: [scss]
        дополнительные_зависимости: ['scss_lint:0.52.0']
 

новое в версии 1.4.0

pre-commit предоставляет несколько хуков, полезных для проверки предварительная фиксация самой конфигурации. Их можно включить с помощью репозитория : meta .

 - репо: мета
    крючки:
    -   я бы: ...
 

Доступные в настоящее время крючки meta :

Check-Hooks-Apply

гарантирует, что настроенные ловушки применяются по крайней мере к одному файлу в репозиторий. новое в версии 1.4.0 .

проверить-бесполезно-исключить

гарантирует, что директивы исключают и применяются к любому файлу в репозиторий. новое в версии 1.4.0 .

идентификатор

простой хук, который печатает все переданные ему аргументы, полезен для отладка. новое в версии 1.14.0 .

автоматическое включение предварительной фиксации в репозиториях

новое в 1.18.0

pre-commit init-templateir можно использовать для настройки скелета для git параметр init.templateDir . Это означает, что любой вновь клонированный репозиторий будет автоматически настроить хуки без необходимости запуска установка перед фиксацией .

Для настройки сначала установите git init.templateDir -- в этом примере я используя ~/.git-template в качестве моего каталога шаблонов.

 $ git config --global init.каталог шаблонов ~/.git-template
$ pre-commit init-templateir ~/.git-template
предварительная фиксация установлена ​​в /home/asottile/.git-template/hooks/pre-commit
 

Теперь всякий раз, когда вы клонируете репозиторий с поддержкой предварительной фиксации, перехватчики уже будут настраивать!

 $ git clone -q [электронная почта защищена]:asottile/pyupgrade
$ компакт-диск pyupgrade
$ git commit --allow-empty -m 'Привет, мир!'
Проверять сначала строку документации........................(нет файлов для проверки) Пропущено
Проверить Ямл...........................................(нет файлов для проверки) Пропущено
Операторы отладки (Python) ................................(нет файлов для проверки) Пропущено
...
 

init-templateir использует параметр --allow-missing-config из pre-commit install , поэтому репозитории без конфигурации будут пропущены:

 $ Пример инициализации git
Инициализирован пустой репозиторий Git в /tmp/sample/.git/
$ компакт-диск образец
$ git commit --allow-empty -m 'Первоначальная фиксация'
Файл конфигурации `.pre-commit-config.yaml` не найден. Пропуск `pre-commit`.[main (root-commit) d1b39c1] Начальная фиксация
 

Чтобы по-прежнему требовать согласия, но предлагать пользователю настроить предварительную фиксацию, используйте крючок шаблона следующим образом (например, в ~/.git-template/hooks/pre-commit ).

 #!/usr/bin/env Баш
если [ -f .pre-commit-config.yaml ]; тогда
    echo 'Обнаружена конфигурация перед фиксацией, но `установка перед фиксацией` никогда не запускалась' 1>&2
    выход 1
фи
 

При этом забытая установка перед фиксацией выдает ошибку при фиксации:

 $ git clone -q https://github.com/asottile/pyupgrade
$ cd pyupgrade/
$ git совершить -m 'foo'
обнаружена предварительная фиксация конфигурации, но `pre-commit install` никогда не запускалась
 

Фильтрация файлов с типами

Фильтрация с типами дает несколько преимуществ по сравнению с традиционной фильтрацией с файлами .

  • нет подверженных ошибкам регулярных выражений
  • файлы могут быть сопоставлены по их шебангу (даже без расширения)
  • символические ссылки/подмодули можно легко игнорировать

типы указывается для каждого хука в виде массива тегов.Теги обнаружены с помощью набора эвристик идентифицировать библиотеку. определить был выбран, поскольку это небольшая портативная библиотека чистого Python.

Некоторые из общих тегов, которые вы найдете в Identification:

  • файл
  • символическая ссылка
  • директория - в контексте pre-commit это будет подмодуль
  • исполняемый файл - установлен ли в файле исполняемый бит
  • текст - выглядит ли файл как текстовый файл
  • бинарный - выглядит ли файл как бинарный файл
  • тега по расширению/соглашению об именах
  • теги от shebang ( #! )

Чтобы узнать тип любого файла на диске, вы можете использовать идентифицируйте cli:

 $ установка Identity-Cli.пи
["файл", "неисполняемый", "python", "текст"]
$identify-cli какой-то-случайный-файл
["файл", "неисполняемый", "текст"]
$identify-cli --filename-only какой-то-случайный-файл; эхо $?
1
 

Если используемое вами расширение файла не поддерживается, пожалуйста, отправьте запрос на вытягивание!

типы , types_or и файлы оцениваются вместе с И когда фильтрация. Теги внутри типов также оцениваются с использованием И .

новый в 2.фу/ типы_или: [javascript, jsx, ts, tsx]

будет соответствовать любому из foo/bar.js / foo/bar.jsx / foo/bar.ts / foo/bar.tsx но не baz.js .

Если вы хотите сопоставить путь к файлу, который не включен в , введите при использовании существующий хук, который вам нужно будет вернуть обратно к файлам , совпадающим только путем переопределения настройка типа . Вот пример использования check-json против не-json файлы:

 – идентификатор: check-json
        типы: [файл] # переопределить `типы: [json]`
        файлы: \.(json|myext)$
 

Файлы также могут быть сопоставлены с помощью shebang. С типами : python , запуск exe с #!/usr/bin/env python3 также будет соответствовать.

Как и в случае с файлы и исключают , при необходимости вы также можете исключить типы с помощью исключить_типы .

Регулярные выражения

Шаблоны для файлов и исключают на Python регулярные выражения и соответствуют re.( путь/к/file1.py| путь/к/file2.py| путь/к/file3.py )$

Переопределение языковой версии

Иногда вам нужно запустить хуки только для определенной версии язык. Для каждого языка по умолчанию используется установленная система. язык (например, если я запускаю python3.7 , а хук указывает python , предварительная фиксация запустит хук, используя python3.7 ).Иногда вы вам не нужна версия, установленная системой по умолчанию, поэтому вы можете переопределить ее на для каждого хука, установив language_version .

 — репозиторий: https://github.com/pre-commit/mirrors-scss-lint
    версия: v0.54.0
    крючки:
    - идентификатор: scss-lint
        языковая_версия: 2.1.5
 

Это указывает предварительной фиксации использовать ruby ​​ 2.1.5 для запуска хука scss-lint .

Допустимые значения для определенных языков перечислены ниже:

  • python: независимо от того, какие у вас установлены интерпретаторы python.Значение этот аргумент передается как -p в virtualenv .
    • новое в версии 1.4.3 : в Windows имя pep394 будет переведено в вызов пусковой установки py для переносимости. Так что продолжайте использовать такие имена, как python3 ( py -3 ) или python3.6 ( py -3.6 ) даже на окна.
  • Узел
  • : см. nodeenv.
  • ruby: см. ruby-build.

новое в версии 1.14.0 : теперь вы можете установить default_language_version на верхнем уровне вашей конфигурации, чтобы управлять версиями по умолчанию для всех хуков языка.

 default_language_version:
    # заставить все неуказанные хуки python запускать python3
    питон: питон3
    # заставить все неуказанные хуки ruby ​​запускать ruby ​​2.1.5
    рубин: 2.1.5
 

маркировка вашего репозитория

вы можете добавить значок в свой репозиторий, чтобы показать вашим участникам/пользователям, что вы используете предварительную фиксацию!

  • Уценка:

     [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.ком/префикс/прекоммит)
     
  • HTML:

     pre-commit
     
  • реструктурированный текст:

     .. изображение:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white
       : цель: https://github.com/pre-commit/pre-commit
       :alt: предварительная фиксация
     
  • AsciiDoc:

     изображение: https://img.Shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white[pre-commit, link=https://github.com/pre-commit/pre-commit]
     

Использование в непрерывной интеграции

предварительная фиксация также может использоваться как инструмент непрерывной интеграции. Для Например, добавление pre-commit run --all-files в качестве шага CI обеспечит все остается на высоте. Чтобы проверить только те файлы, которые изменились, что может быть быстрее, используйте что-то вроде запуск перед фиксацией --from-ref origin/HEAD --to-ref HEAD

Управление кэшами CI

предварительная фиксация по умолчанию размещает хранилище репозитория в ~/.кэш/предварительная фиксация -- это можно настроить двумя способами:

  • PRE_COMMIT_HOME : если установлено, предварительная фиксация будет использовать это местоположение.
  • XDG_CACHE_HOME : если установлено, предварительная фиксация будет использовать $XDG_CACHE_HOME/pre-commit в соответствии со спецификацией базового каталога XDG.

пример pre-commit.ci

для запуска pre-commit.ci не требуется дополнительная настройка!

pre-commit.ci также имеет следующие преимущества:

  • это быстрее, чем другие бесплатные решения CI
  • он будет автоматически исправлять запросы на вытягивание
  • он будет периодически автоматически обновлять вашу конфигурацию

appveyor пример

 кеш:
- '%ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ%\.кеш\предварительная фиксация
 

пример лазурных конвейеров

примечание: лазурные конвейеры используют неизменяемые кэши, поэтому версия Python и .pre-commit-config.yaml хэш должен быть включен в ключ кеша. для шаблон репозитория, см. asott[email protected].

 рабочих мест:
- работа: предварительная фиксация

  # ...

  переменные:
    PRE_COMMIT_HOME: $(Pipeline.Workspace)/pre-commit-cache

  шаги:

  # ...

  - скрипт: echo "##vso[task.setvariable variable=PY]$(python -VV)"
  - задача: [электронная почта защищена]
    входы:
      ключ: предварительная фиксация | .предварительная фиксация-config.yaml | "$(ПЯ)"
      путь: $(PRE_COMMIT_HOME)
 

Circleci пример

Подобно лазурным конвейерам, Circleci также использует неизменяемый кеши:

 шагов:
  - бегать:
    команда: |
      cp .pre-commit-config.yaml pre-commit-cache-key.txt
      python --version --version >> pre-commit-cache-key.txt
  - восстановить_кэш:
    ключи:
    - v1-pc-cache-{{ контрольная сумма "pre-commit-cache-key.txt" }}

  # ...

  - save_cache:
    ключ: v1-pc-cache-{{ контрольная сумма "pre-commit-cache-key.текст" }}
    пути:
      - ~/.cache/предварительная фиксация
 

(источник: @chriselion)

Пример действий

github

см. официальное действие github перед фиксацией

, как и лазурные конвейеры, действия github также используют неизменяемые кеши:

 - имя: набор PY
      выполнить: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
    - использует: действия/[электронная почта защищена]
      с участием:
        путь: ~/.cache/pre-commit
        ключ: предварительная фиксация|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
 

gitlab CI пример

Ознакомьтесь с рекомендациями Gitlab по кэшированию, чтобы точно настроить область кэширования.

 моя_работа:
  переменные:
    PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
  кеш:
    пути:
      - ${PRE_COMMIT_HOME}
 
Кэш предварительной фиксации

должен обслуживаться из постоянного местоположения между различными сборками. Это не значение по умолчанию при использовании бегунов k8s на Гитлаб. Если вы столкнулись с ошибкой InvalidManifestError , установите builds_dir на что-то статическое, например.g builds_dir = "/builds" в вашей конфигурации [[runner]]

travis-ci пример

 кеш:
  каталоги:
  - $HOME/.cache/предварительная фиксация
 

Использование с tox

tox полезен для настройки инструментов тестирования/CI например, предварительная фиксация. Одной из особенностей tox>=2 является очистка окружающей среды. переменные, чтобы тесты были более воспроизводимыми. При некоторых условиях, pre-commit требует несколько переменных среды, поэтому они должны быть разрешили пройти.

При клонировании репозиториев через ssh ( репозиторий: [email protected]:... ) git требует переменная SSH_AUTH_SOCK , иначе произойдет сбой:

 [INFO] Инициализация среды для [email protected]:pre-commit/pre-commit-hooks.
Произошла непредвиденная ошибка: CalledProcessError: команда: ('/usr/bin/git', 'fetch', 'origin', '--tags')
код возврата: 128
ожидаемый код возврата: 0
стандартный вывод: (нет)
стандартный:
    [электронная почта защищена]: разрешение отклонено (открытый ключ).фатальный: Не удалось прочитать из удаленного репозитория.

    Пожалуйста, убедитесь, что у вас есть правильные права доступа
    и репозиторий существует.

Проверьте журнал в /home/asottile/.cache/pre-commit/pre-commit.log.
 

Добавьте в свой tox testenv следующее:

 [тестенв]
пароль = SSH_AUTH_SOCK
 

Аналогично при клонировании репозиториев по http/https (репозиторий : https://github.com:... ), возможно, вы работаете в корпоративной прокси-сервер http(s), в этом случае git требует http_proxy , https_proxy и переменные no_proxy должны быть установлены, иначе клон может не работать:

 [тестенв]
passenv = http_proxy https_proxy no_proxy
 

Использование последней версии для репозитория

предварительная фиксация конфигурация направлена ​​на обеспечение воспроизводимой и быстрой работы и поэтому намеренно не предоставляет средства для "открепленных последних version" для репозиториев ловушек.

Вместо этого предварительная фиксация предоставляет инструменты, упрощающие обновление до последние версии с автообновлением перед фиксацией . Если вам нужна самая последняя версия хука (вместо последней помеченной версии), передайте параметр --bleeding-edge в autoupdate .

предварительная фиксация предполагает, что значение rev является неизменяемой ссылкой (например, тег или SHA) и будет кэшироваться на основе этого. Использование имени ветки (или HEAD ) для значение rev не поддерживается и будет представлять только состояние эта изменяемая ссылка во время установки хука (и будет обновляться НЕ автоматически).

Установка агента Cloud Logging на отдельные виртуальные машины  | Облако Google

Ключевой момент: Хотя этот агент все еще поддерживается, мы рекомендуем вам использовать Ops Agent для новых рабочих нагрузок и в конечном итоге переведите существующие виртуальные машины на использование нового агента. Агент операции возможная замена существующих агентов набора операций Google Cloud, и это предлагает простой пользовательский интерфейс с метриками и ведением журнала, объединенными в один агент.

Агент ведения журналов передает журналы из ваших экземпляров ВМ и из выбранные сторонние программные пакеты в Cloud Logging.это лучший попрактикуйтесь в запуске агента ведения журнала на всех экземплярах вашей виртуальной машины.

Образы ВМ для Compute Engine и Amazon Elastic Compute Cloud (EC2) не включить агент ведения журнала, поэтому вы должны выполнить эти шаги, чтобы установите его на эти экземпляры. Агент работает как под Linux, так и под Windows.

Если ваши виртуальные машины работают в Google Kubernetes Engine или App Engine , агент уже включен в образ ВМ, поэтому вы можете пропустить эту страницу.

Если вы выполняете специализированные рабочие нагрузки ведения журналов, требующие более высокой пропускной способности и/или повышенная эффективность использования ресурсов по сравнению со стандартным Cloud Logging агент, рассмотрите возможность использования агента Ops.

Прежде чем начать

Чтобы установить агент, убедитесь, что у вас есть следующее:

  • Поддерживаемый экземпляр ВМ в Проект Google Cloud или учетная запись Amazon Web Services (AWS).

    • При установке агента ведения журнала не менее 250 МБ требуется память, но рекомендуется 1 ГБ.

    Также убедитесь, что на вашей виртуальной машине работает поддерживаемая операционная система. система.

  • Учетные данные экземпляра ВМ, разрешающие связь с Облачное ведение журнала или облачный мониторинг.Экземпляры ВМ Compute Engine обычно имеют правильные учетные данные по умолчанию. Если одно из следующих сценарии применимы к вам, то у вас может не быть надлежащих учетных данных и необходимо выполнить авторизацию агента процедуры:

    • Запуск экземпляров ВМ AWS EC2, необходимо установить авторизацию учетные данные на ваших виртуальных машинах до установка агента.

    • Запуск очень старых экземпляров Compute Engine или Compute Engine экземпляры, созданные без учетных данных по умолчанию.

    Чтобы проверить правильность учетных данных, запустите проверку Учетные данные Compute Engine процедуры.

  • Для пользователей AWS выполните следующие действия:

    1. Подключите свою учетную запись AWS к облаку Google. Для информации об этом процессе см. Просмотр метрик для аккаунтов AWS.

      Примечание. Когда вы подключаете свою учетную запись AWS к облаку Google, вы создать Проект коннектора AWS. Чтобы упростить идентификацию этих проектов, мы рекомендуем Проекты коннектора AWS следуют соглашению об именах.
    2. См. Проекты Google Cloud для экземпляров виртуальных машин AWS EC2 раздел для дополнительной информации.

  • Информацию о ценах см. Цены на операционный пакет Google Cloud.

  • Если вы используете виртуальные машины, у которых нет доступа к удаленным репозиториям пакетов, обращаться к виртуальным машинам без удаленного доступа к пакетам раздел для получения дополнительной информации.

Установка агента с помощью командной строки

Чтобы установить агент с помощью командной строки, выполните следующие инструкции.

Установка последней версии агента

Чтобы установить последнюю версию агента, выполните следующие действия.

Линукс

  1. Откройте терминальное соединение с вашим экземпляром виртуальной машины с помощью SSH или аналогичного инструмента. и убедитесь, что у вас есть доступ sudo .

  2. Перейдите в каталог, к которому у вас есть доступ для записи, например, ваш домашний каталог.

  3. Прогон:

      curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh
    sudo bash add-logging-agent-repo.sh --also-install
      

Окна

  1. Подключитесь к своему экземпляру с помощью RDP или аналогичного инструмента и войдите в Windows.

  2. Откройте терминал PowerShell с правами администратора, щелкнув правой кнопкой мыши Значок PowerShell и выбор Запуск от имени администратора .

  3. Запустите следующие команды PowerShell:

      (Сеть нового объекта.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-17.exe", "${env:UserProfile}\StackdriverLogging-v1-17.exe")
    & "${env:UserProfile}\StackdriverLogging-v1-17.exe"
      

Установка определенной версии агента

Чтобы установить определенную версию агента, выполните следующие действия.

Линукс

  1. Откройте терминальное соединение с вашим экземпляром виртуальной машины с помощью SSH или аналогичного инструмента. и убедитесь, что у вас есть доступ sudo .

  2. Перейдите в каталог, к которому у вас есть доступ для записи, например, ваш домашний каталог.

  3. Скачать скрипт установки агента:

      curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh
      

    При запуске скрипта add-logging-agent-repo.sh вы также можете установить следующие флаги:

    • --verbose : включает подробное ведение журнала во время выполнения скрипта.
    • --also-install : устанавливает агент после добавления пакета агента. репозиторий.
    • --version : задает версию агента для установки сценария.
    • --uninstall : Удаляет агент.
    • --remove-repo : Удаляет соответствующий репозиторий пакетов агентов после установка или удаление агента.
    • --dry-run : запускает только пробный запуск сценария и распечатывает команды, которые он должен выполнять.

    Дополнительные сведения и примеры использования см. в комментариях к сценарию.

  4. Добавьте репозиторий пакетов агента и установите агент:

    1. Список доступных версий агента для выбора версии для install см. Список всех версий агента.

    2. Для производственных сред может потребоваться привязка к основной версии для избегайте установки основных версий, которые могут включать обратную несовместимость изменения. Чтобы закрепить основную версию, введите:

        sudo bash add-logging-agent-repo.ш --также-установить \
        --version=  ОСНОВНАЯ_ВЕРСИЯ.*.* 
        

      Например, чтобы закрепить на 1.x.x агент, запустить:

        sudo bash add-logging-agent-repo.sh --also-install \
        --версия=1.*.*
        
    3. Чтобы установить конкретную версию агента, выполните:

        sudo bash add-logging-agent-repo.sh --also-install \
        --version=  MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION 
        
  5. Перезапустите службу агента

    Для конфигураций, установленных все пакеты выше, чтобы они вступили в силу.

      служба sudo google-fluentd перезапуск
      

Вы можете удалить сценарий установки после его успешного запуска.

  • Чтобы убедиться, что агент работает должным образом, выполните:

      статус службы sudo google-fluentd
      

    Статус агента должен быть OK .

Если у вас возникли проблемы с установкой, см. Страница устранения неполадок.

Windows

  1. Подключитесь к своему экземпляру с помощью RDP или аналогичного инструмента и войдите в Windows.

  2. Откройте терминал PowerShell с правами администратора, щелкнув правой кнопкой мыши Значок PowerShell и выбор Запуск от имени администратора .

    Примечание. В экземплярах ВМ поддерживается только последняя версия агента. работает Windows. Установка предыдущих версий не рекомендуется.
    1. Запустите следующие команды PowerShell:

        (Новый объект Net.WebClient).DownloadFile("https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-17.exe", "${env:UserProfile}\StackdriverLogging-v1-17.exe")
      & "${env:UserProfile}\StackdriverLogging-v1-17.exe"
        

    Кроме того, вы можете перейти по следующему URL-адресу, чтобы загрузить и запустить установщик агента:

    https://dl.google.com/cloudagents/windows/StackdriverLogging-v1-17.exe

    Внимание! Вы должны загрузить программу установки в несистемный каталог, например как C:\Users\[ИМЯ ПОЛЬЗОВАТЕЛЯ] . Из соображений безопасности программа установки не запускать из системных каталогов, включая каталог C:\.Если вы загружаете установщик в системный каталог, переместите его в другой каталог перед его запуском. Примечание: Программа установки агента также поддерживает «тихий» вариант, /S , который можно использовать в сценарии установки.

    Чтобы установить агент в автоматическом режиме, добавьте к вызову параметр /S . установщика:

      & "${env:UserProfile}\StackdriverLogging-v1-17.exe"/S
      
    Внимание! Автоматическая установка — это асинхронная операция.Когда команда установки завершается, агент еще не установлен. Ты сможешь проверьте успешность установки, выполнив поиск Служба StackdriverLogging . Примечание: Программа установки помещает агент в Каталог `C:\Program Files (x86)\Stackdriver\LoggingAgent` по умолчанию. Вы можете изменить этот каталог во время установки.

    В «тихом» режиме используйте опцию /D , чтобы указать каталог установки, например:

      & "${env:UserProfile}\StackdriverLogging-v1-17.exe" /S /D="C:\Stackdriver\Logging\"
      

    После успешного завершения установки программу установки можно удалить.

    Если у вас возникли проблемы с установкой, см. Страница устранения неполадок.

Установка агента с помощью Google Cloud Console

Вы можете установить агент на одну или несколько виртуальных машин Compute Engine из предварительно настроенная панель управления Monitoring VM Instances .

Чтобы получить доступ к этой панели, выполните следующие действия:

  1. В Cloud Console выберите свой проект Google Cloud.

    Перейти к облачной консоли

  2. На панели навигации выберите Мониторинг .

  3. На панели навигации «Мониторинг» выберите Панели мониторинга .

  4. В таблице информационных панелей найдите запись VM Instances и щелкните на имя.

На вкладке Inventory на панели мониторинга VM Instances перечислены все виртуальные машины и включает столбец состояния для вашего агента, как показано на следующем снимке экрана:

В столбце Agent представлены следующие значения:

  • Не обнаружено : Агент не установлен.Если облачный мониторинг не обнаруживает никаких агентов, установленных в экземпляре Compute Engine, затем вы можете установить агент, выполнив следующие действия:

    • Выберите экземпляры ВМ, на которые вы хотите установить агенты.
    • Выберите параметр Установить агенты в таблице Экземпляры , вызывает рабочий процесс установки на панели инструментов и следуйте инструкции. Агент Ops — это установленный по умолчанию агент, но рабочий процесс установки предоставляет ссылку для установки устаревших агентов.

      Агент Ops по умолчанию собирает как метрики, так и журналы. Ты можешь измениться это поведение по умолчанию, настроив Ops Агент.

  • Агент операции : Вы используете агент операции.

  • Устаревший агент : Вы используете устаревший мониторинг или Логирующий агент. См. раздел Миграция с устаревших агентов на Ops. Агент для получения информации о переходе на Ops Agent.

  • Неприменимо : Эта виртуальная машина не является поддерживаемой платформой для запуска агента.

  • ВМ остановлена ​​ : ВМ не работает, поэтому состояние агента неизвестно.

Дополнительные задачи

В этом разделе описывается, как выполнять общие задачи обслуживания.

Включить структурированное ведение журнала

При запуске сценария установки на виртуальной машине Linux сценарий по умолчанию устанавливает пакет google-fluentd-catch-all , когда флаг --also-install настоящее. Чтобы переключиться на структурированное ведение журнала, выполните следующие действия. шаги.

  1. Резервное копирование любых локальных изменений в /etc/google-fluentd/config.d/ .

  2. Запустите одну из следующих команд, в зависимости от вашего дистрибутива Linux:

    • ЮМ:

        sudo yum удалить -y google-fluentd-catch-all-config
      sudo yum install -y google-fluentd-catch-all-config-structured
      служба sudo google-fluentd перезапустить
        
    • АТС:

        sudo apt-get remove -y google-fluentd-catch-all-config
      sudo apt-get install -y google-fluentd-catch-all-config-structured
      служба sudo google-fluentd перезапустить
        

Для получения информации о структурированном ведении журнала см. руководство по структурированному ведению журналов.

Настройка агента

Агент поставляется предварительно настроенным для мониторинга определенных известных местоположений журналов. В Linux, эти расположения описаны в пакете google-fluentd-catch-all-config , который автоматически загружается сценарием установки. В Windows Агент отслеживает журнал событий Windows по умолчанию.

Сведения о настройке агента см. в разделе Настройка агента.

Настройка прокси-сервера HTTP

Если вы используете прокси-сервер HTTP для проксирования запросов к Мониторинг API, выполните следующие действия:

Линукс

  1. Отредактируйте следующий файл конфигурации (создайте файл, если он еще не есть):

      /etc/default/google-fluentd
      
  2. Добавьте в файл следующее:

      экспорт http_proxy="http://  прокси-ip  :  прокси-порт "
     экспорт https_proxy="http://  прокси-ip  :  прокси-порт "
     экспортировать no_proxy=169.254.169.254 # Пропустить прокси для локального сервера метаданных.
      
  3. Перезапустите агент, выполнив следующую команду на своем экземпляре виртуальной машины:

      служба sudo google-fluentd перезапуск
      

Окна

  1. Если вы используете прокси-сервер HTTP, выполните следующую команду из командная строка администратора. Это устанавливает http_proxy и https_proxy переменные среды, чтобы агент мог отправлять данные, используя исходящий HTTPS:

      setx http_proxy http://  прокси-ip  :  прокси-порт  /m
    setx https_proxy http://  прокси-ip  :  прокси-порт  /m
    setx без_прокси 169.254.169.254 /м
      

Определение версии агента

Чтобы определить версию агента ведения журнала в вашей системе, выполните следующие команды на вашем экземпляре виртуальной машины:

AMAZON LINUX AMI/CENTOS/RHEL

Выполните следующую команду в Amazon Linux, Red Hat или CentOS Linux:

  об/мин --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
     свободно владею Google ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured
  

ДЕБИАН/УБУНТУ

Запустите следующую команду в Debian или Ubuntu:

  dpkg-запрос --show --showformat \
    '${Пакет} ${Версия} ${Архитектура} ${Статус}\n' \
     свободно владею Google ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured
  

СЛЕС/СУСЕ

Выполните следующую команду в SUSE:

  об/мин --query --queryformat '%{NAME} %{VERSION} %{RELEASE} %{ARCH}\n' \
     свободно владею Google ∖
     google-fluentd-catch-all-config ∖
     google-fluentd-catch-all-config-structured
  

ОКНА

  1. Подключитесь к своему экземпляру с помощью RDP или аналогичного инструмента и войдите в Windows.

  2. Откройте терминал PowerShell с правами администратора, щелкнув правой кнопкой мыши значок PowerShell и выберите Запуск от имени администратора .

  3. Запустите следующую команду PowerShell:

      reg-запрос HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\GoogleStackdriverLoggingAgent\ /v Version
      

Перезапуск агента

Вы должны перезапустить агент ведения журнала, чтобы принять изменения в файлы конфигурации.Чтобы перезапустить агент, используйте следующие инструкции.

ЛИНУКС

Выполните на своем экземпляре следующую команду:

  служба sudo google-fluentd перезапуск
  

После перезапуска агента ведения журналов может потребоваться отправить тестовое сообщение.

Windows

  1. Подключитесь к своему экземпляру с помощью RDP или аналогичного инструмента и войдите в Windows.

  2. Откройте терминал PowerShell с правами администратора, щелкнув правой кнопкой мыши Значок PowerShell и выбор Запуск от имени администратора .

  3. Запустите следующую команду PowerShell:

  Restart-Service -Name StackdriverLogging
  

Обновление агента

Чтобы обновить агент ведения журнала до последней версии, используйте следующие инструкции:

Примечание: Если вы обновили операционную систему Linux вашего экземпляра до новой основной релиз, то вы должны сначала удалить агент, а затем переустановите его, используя процедуры на этой странице, вместо завершение этих процедур обновления.

Линукс

Чтобы обновить агент до последней версии, выполните следующую команду:

  sudo bash add-logging-agent-repo.sh --also-install
  

Чтобы обновить агент до последней версии определенной основной версии, выполните следующую команду:

  sudo bash add-logging-agent-repo.sh --also-install \
  --version=  ОСНОВНАЯ_ВЕРСИЯ.*.* 
  

Windows

Чтобы выполнить обновление до последней версии агента, установите новейшую версию агента, как описано в Установка в Windows на этой странице.Программа установки предложит вам для удаления предыдущей версии агента.

Список всех версий агента

Чтобы получить список доступных версий агента, выполните следующую команду:

AMAZON LINUX AMI/CENTOS/RHEL

Список доступных версий агента:

  список sudo yum --showduplicates google-fluentd
  

ДЕБИАН/УБУНТУ

Список доступных версий агента:

  sudo apt-cache Мэдисон google-fluentd
  

СЛЕС/СУСЕ

Список доступных версий агента:

  поиск sudo zypper -s google-fluentd
  

ОКНА

Установка более ранних версий агента в Windows не поддерживается.

Удаление агента

Чтобы удалить агент ведения журнала и его файлы конфигурации, используйте следуя инструкциям.

После удаления агента Google Cloud Console может занять до одного час, чтобы сообщить об этом изменении.

Примечание: Если вы добавили свои собственные файлы конфигурации fluentd , скопируйте их из конфигурация агента каталог для сохранности.

Линукс

Выполните следующую команду:

  sudo bash add-logging-agent-repo.ш --удалить
  

Windows

В Панели управления Windows выберите Удалить программу . Вы должны увидеть Агент ведения журнала в списке программ, которые можно удалить.

Информация о проектах Google Cloud для экземпляров виртуальных машин AWS EC2

Когда в документации упоминается Google Cloud проект, связанный с вашим экземпляром ВМ , для экземпляров ВМ EC2 эта фраза относится к проекту соединителя AWS, связанному с вашей учетной записью AWS.

Когда вы подключаете свою учетную запись AWS к облаку Google, вы создать проект коннектора AWS. Информацию об этом процессе см. Просмотр метрик для аккаунтов AWS.

Чтобы получить доступ к проекту соединителя AWS для учетной записи AWS, выполните одно из следующих действий: следующее:

  • Используйте селектор проектов Google Cloud Console, чтобы определить проекты, которые соответствуют соглашениям об именах проектов коннектора AWS, а затем выберите конкретный проект для вашей учетной записи AWS.

  • Укажите проект Google Cloud, область метрик которого включает ваши Метрики аккаунта AWS и выберите этот проект в Google Cloud Console. селектор проектов.Для этого проекта Google Cloud перейдите на страницу Monitoring . , а затем выберите страницу настроек . На странице настроек перечислены Проекты коннектора AWS. Вы можете использовать селектор проектов Google Cloud Console. для доступа к проекту коннектора AWS.

Примечание. Не устанавливайте агент на экземпляр виртуальной машины EC2, пока не подключитесь ваш аккаунт AWS в Google Cloud. Пока соединение не установлено, нет связанного проекта Google Cloud и, следовательно, некуда отправлять данные.

ВМ без удаленного доступа к пакетам

Для установки агента ведения журнала требуется доступ к удаленные репозитории пакетов как для пакета агента, так и (в Linux) для его зависимости.

Если вы используете VPC-SC или частную сеть, конфигурация сети также может повлиять на вашу возможность установить агент зависимости от вышестоящих репозиториев. Сами пакеты агентов доступ через Private Google Доступ.

Если политика безопасности узла виртуальной машины запрещает доступ к удаленным репозиториям пакетов, мы рекомендуем создать пользовательскую виртуальную машину изображение с предварительно установленный агент и отключение управления пакетами в этом образе.

Что дальше

Руководство по виртуальной установке | Управление счетом

 

Многие организации приняли методы виртуализации, чтобы сохранить с быстро меняющимся аппаратным и программным обеспечением требования. Виртуализация позволяет запускать приложения на виртуальная машина, изолированная на сервере. Вам нужно меньше физические машины и могут объединять компьютерные ресурсы.

Право на виртуальную установку

Возможность использовать ваше программное обеспечение в виртуальной среде зависит от того, какой продукт вы используете, как вы его приобрели и являются ли условия использования для этого плана покупки разрешить виртуализацию.Проверьте системные требования вашего программное обеспечение, чтобы убедиться, что оно будет работать в виртуальной среде.

Чтобы убедиться, что ваше программное обеспечение подходит для использования в виртуальном среду, ознакомьтесь с условиями доступа и использования для вашей покупки строить планы.

  • Планы покупки, допускающие некоторую форму виртуализации:
    • Подписка именованного пользователя (однопользовательский доступ или Flex) или корпоративное деловое соглашение . Менеджеры могут развернуть программное обеспечение, чтобы назначенный пользователь мог получить к нему доступ с нескольких устройств, но только один авторизованный пользователь может получить доступ к одной лицензии вовремя.
      • Подписка именованного пользователя требует от пользователей входа в систему для авторизации их программный доступ. Если ваша виртуальная среда не сохраняет MAC-адрес пользователя при перезапуске, пользователь должен будет входить в каждую сессию, чтобы получить доступ к их программному обеспечению.
    • Серверы сетевых лицензий, серверные компоненты или серверные компоненты продукта . Они включены в планы сетевых лицензий и подписки с многопользовательской доступ. Вы можете виртуализировать серверные компоненты локально на вашей собственной глобальной сети или удаленно через стороннего облачного провайдера.Если вы выбираете удаленный вариант, убедитесь, что:
      • Размещенное программное обеспечение надлежащим образом защищено сторонним облачный провайдер.
      • Вы можете контролировать доступ к удаленно размещенным программное обеспечение.
  • Планы покупки, не допускающие виртуализации:
    • Подписки с многопользовательским доступом .
    • Планы технического обслуживания .

Тип доступа

Виртуализация программного обеспечения установка

Виртуализация сервера компоненты

Именованный пользователь подписка

Однопользовательский подписка

Разрешено

Н/Д

Гибкий

Разрешено

Н/Д

Корпоративное деловое соглашение (маркер Флекс)

Разрешено

Разрешено

Многопользовательский подписка и планы обслуживания

Многопользовательская подписка

Нет разрешено

Разрешено

Включает сеть лицензия, серверы, серверные компоненты и серверный продукт компоненты.

Бессрочная сетевая лицензия (с или без план обслуживания) 

Нет разрешено

Разрешено

Включает сеть лицензия, серверы, серверные компоненты и серверный продукт компоненты.

Автономная бессрочная лицензия (с или без план обслуживания) 

Нет разрешено

Н/Д

Техническая поддержка виртуальной установки

Autodesk предоставляет техническую поддержку, чтобы убедиться, что ваш программное обеспечение работает исправно, но не обеспечивает техническую поддержку ваша виртуальная среда.Если у вас возникла проблема, требующая техническая поддержка, нашим специалистам по поддержке может потребоваться убедиться, что проблема связана с вашим программным обеспечением, а не с виртуальной средой. Они могут попросить вас воспроизвести проблемное поведение в физическая среда.

Добавить комментарий

Ваш адрес email не будет опубликован.