Статья пригодна для добавления в закладки Nexus3 строить NuGet&Docker Краткое описание установки и использования частных библиотек
Статья пригодна для добавления в закладки Nexus3 строить NuGet&Docker Краткое описание установки и использования частных библиотек

Предисловие

Nexus это поддержка Nuget、Docker、Npm Менеджер склада различных пакетов, который можно использовать для хранения и распространения частных пакетов и кэширования официальных пакетов. Эта статья научит вас, как использовать его шаг за шагом. Nexus строить Собственныйиз NuGe t& Docker Частный склад.

Функции

  • Управление приватизированным складом
  • поддерживать Разрешенияуправлять
  • Кэширование пакетов зависимостей
  • Поддерживает механизм плагинов и REST API.
  • Зрелый, стабильный и мощный
  • поддерживатьизсклад/Сумкауправлять

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

  • зрелыйдокумент,использовать все стабильно,После развертывания вам не нужно слишком беспокоиться.
  • Он имеет мощные функции, а память составляет около 1.4G+,Текущая команда использует память 4G из Служить развертыванию сервера,Почти достаточно
  • поддерживать docker Склад, я попробовал и наконец получил, буду следить за DevOps рядсерединаиспользовать
  • документ относительно завершен,Если у вас возникнут проблемы, вы можете ознакомиться с дополнительным документом.

Установка и развертывание

Установить с помощью Docker Compose

Создайте каталог для подключения данных и предоставьте разрешения: UID 200 запустить в виде mkdir ./data && chown -R 200 ./data

Укажите версию:sonatype/nexus3:3.61.0

по умолчаниюпорт:8081

Укажите префикс доступа: /

Укажите сеть: DevopsNetwork (docker network create devopsnetwork

Сервер развертывания IP:192.168.123.214

Создать compose.yml

Язык кода:javascript
копировать
 version: '3.1'
 services:
   nexus:
     image: sonatype/nexus3:3.61.0
     container_name: nexus_3_61 
     restart: always
     environment:
     # Nexus контекстный путь
        NEXUS_CONTEXT: /       
     # Укажите параметры JVM
        INSTALL4J_ADD_VM_PARAMS: -Xms1g -Xmx1g -XX:MaxDirectMemorySize=3g
     volumes:
     # Нужно сначала дать Разрешения chown -R 200 ./data
     - ./data:/nexus-data
     ports:
       - "8081:8081"
       
     networks:
       - devopsnetwork

 networks:
   devopsnetwork:
     external: true

бегать:docker compose up -d

Для запуска требуется время, пожалуйста, наберитесь терпения. 2-3 минута,доступ:http://192.168.123.214:8081/

Вы можете видеть, что пароль администратора по умолчанию находится в ./data/admin.password. После его получения нажмите «Войти» в правом верхнем углу, чтобы войти в систему.

При успешном входе вам будет предложено сменить пароль devops666 и отключить анонимный доступ.

Используйте nginx для настройки доступа к доменному имени

  • использовать ./02.build-ssl.sh nexus.devops.test.com генерировать Сертификат,Просто перезагрузите Конфигурацию
Язык кода:javascript
копировать
server {
    listen       80;
    listen       443 ssl;
    server_name  nexus.devops.test.com;
    # allow large uploads of files
    client_max_body_size 1G;

    ssl_certificate      /certs/nexus.devops.test.com/server.crt;
    ssl_certificate_key  /certs/nexus.devops.test.com/server.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
      proxy_pass   http://nexus_3_61:8081/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Выполнение

Управление пакетами Nuget с помощью Nexus

Описание элемента по умолчанию
  • nuget-group: Групповые репозитории,Несколько удаленных и локальных репозиториев можно объединить в виртуальный репозиторий.,по умолчанию Сумка Содержит хостинг nuget, прокси-сервер nuget.org. Вытащить Сумкаиз адрес общий Конфигурация этого склада адрес
  • nuget-hosted: размещенный репозиторий, в этом репозитории можно хранить локальные выпуски из Сумка. Толкать Сумкаиз адрес требует Конфигурация этого склада адреса
  • nuget.org-proxy: репозиторий прокси, кеш nuget.org Они доступны на местном сайте Служить.
Планирование и создание аккаунта

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

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

Создать роль

Разрешенияиллюстрировать:документ

Роль тяги: тягач ,настраивать Разрешения:nx-repository-view-*-*-browse nx-repository-view-*-*-read

Роль толкателя: толкатель ,настраивать Разрешения:nx-component-upload nx-repository-view-*--

Зарегистрироваться

Учетная запись Pull: puller, установите пароль devops666, установите роль: pull-man

Учетная запись Push: pusher, установите пароль devops666, установите роль: push-man, ключ API, используемый nuget, на данный момент не используется, но будет использоваться позже при управлении докером.

Создать ключ API NuGet

Толкать NuGet Сумкакогда это необходимоиспользовать,Нажмитеуправлять Аватар участника->NuGet API ключ->генерироватьключ

Включить область ключей NuGet API

Ключ был получен на предыдущем шаге, но напрямую его использовать нельзя. Его нужно задать в настройках. Security>Realms включено в NuGet API-Key Realm。

Похоже на: метод проверки возможности предоставления возможности,полеиллюстрироватьВидетьдокумент

Установить стратегию развертывания

по умолчанию nuget Хостинг пакетов включен, Чтобы предотвратить злонамеренное изменение пакета, вы можете nuget-hosted склад изменен для отключения перераспределения,Когда над разработкой сотрудничают несколько человек, это может предотвратить перезапись Сумки другими.,Связанные документыиллюстрировать . Когда перераспределение отключено в настройках, Толкат будет возвращаться при повторении Сумкаиз. 400 ошибка

Использование источников пакетов NuGet для Nexus

Поскольку в предыдущей конфигурации анонимный доступ был отключен и настроена соответствующая учетная запись, для удобства Nexus Вывести из сервиса Nuget Пакеты можно настроить через файл конфигурации. nuget.config (документ)указать nuget Источник Nexus Служить nexus.devops.test.com

обозначение Конфигурация Фестивальизимяиисточник(по умолчаниюиспользовать NuGet V3,V2 Нет необходимости добавлять index.json)

Укажите пароль учетной записи для использования источника пакета.

Поместите его в тот же каталог, что и решение, чтобы оно вступило в силу.

файл nuget.config

Язык кода:javascript
копировать
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
   <packageSources>
     <add key="nexus.devops.test.com" value="https://nexus.devops.test.com/repository/nuget-group/index.json" />
   </packageSources>
   <packageSourceCredentials>
     <nexus.devops.test.com>
       <add key="Username" value="puller" />
       <add key="ClearTextPassword" value="devops666" />
     </nexus.devops.test.com>
   </packageSourceCredentials>
 </configuration>
Отправка пакетов NuGet в Nexus

отlocalТолкатьone NuGet Доставка Nexus Хостинг Служить требует двух шагов, играя Сумка, Толкать. Чтобы лучше изиспользовать, вы можете объединить скрипт для быстрого ввода Сумки. Возьмите предыдущий пример пакета вычисляемых полей и введите его в Сумку. NuGet Сумка Толкать Nexus середина

Структура каталогов следующая

Сначала создайте новую конфигурацию .nuspec шаблон,При необходимости измените информацию, связанную с библиотекой.,nuspec Конфигурационный документ

Язык кода:javascript
копировать
 <?xml version="1.0" encoding="utf-8"?>
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
         <id>Devops.Common.EvalSDK</id>
         <version>0.0.15</version>
         <authors>yimo</authors>
         <description>Расчетное поле</description>
         <projectUrl>https://github.com/yimogit/MeDevOps</projectUrl>
         <tags>Devops.Common.EvalSDK</tags>
         <repository type="git" url="https://github.com/yimogit/MeDevOps.git" branch="main"/>
     </metadata>
     <files>
       <file src="..\Devops.Common.EvalSDK\bin\Release***.dll" target="lib" />
       <file src="..\Devops.Common.EvalSDK\bin\Release***.pdb" target="lib" />
     </files>
 </package>

Справочник по библиотекам упаковки, в нескольких версиях используется TargetFrameworks.

Язык кода:javascript
копировать
  <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
      <TargetFrameworks>netstandard2.1;netcoreapp3.1;net5.0;net7.0;</TargetFrameworks>
    </PropertyGroup>

    <PropertyGroup>
      <DocumentationFile>bin$(Configuration)$(TargetFramework)\Devops.Common.EvalSDK.xml</DocumentationFile>
    </PropertyGroup>
    
  </Project>

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

Язык кода:javascript
копировать
 #!/bin/bash
 pwd
 current_dir=`pwd` 
 #nuget apiключ
 nuget_key="aa7890bf-8dfb-33e3-bed9-c1571e5b9b96" 
 #hostсклададрес
 nuget_source="https://nexus.devops.test.com/repository/nuget-hosted/"
 #Сумкаизская версия
 package_version="0.0.2"
 #Сумкаимя nupkg_pakcage_name="Devops.Common.EvalSDK.${package_version}.nupkg"
 #Путь к библиотеке проекта
 csproj_path="../Devops.Common.EvalSDK/Devops.Common.EvalSDK.csproj"
 #Сумка Конфигурация
 nuspec_path="Devops.Common.EvalSDK.nuspec"
 #nuspec path , relative csproj path
 nuspec_path_relative_csproj="../pack/Devops.Common.EvalSDK.nuspec"

 #git pull
 #Удалить старую версию
 rm -f nupkg_pakcage_name
 cd ${current_dir} 
 #Альтернативная версия
 sed -i 's|<version>.*</version>|<version>'${package_version}'</version>|g' ${nuspec_path}

 echo pack ${nupkg_pakcage_name}
 #Помещаем документ Сумкаnupkg в текущий каталог пакета Сумкаимя.x.x.x.nupkg dotnet pack ${csproj_path}  -p:NuspecFile=${nuspec_path_relative_csproj} -c Release --output ../pack  -v m

 #Оцените, успешно ли да играет в Сумку
 echo
 if [ ! -f "${nupkg_pakcage_name}" ]; then
     echo "pack ${nupkg_pakcage_name} is error"
     exit -1
 fi

 #Толкать Сумка
 echo push ${nupkg_pakcage_name}
 dotnet nuget push ${nupkg_pakcage_name} -k ${nuget_key} -s ${nuget_source}

Выполнено успешно с использованием Nexus источникиз Сумкауправлятьустройствосерединамогу искатьиспользовать Понятно

Управление образами Docker с помощью Nexus

Текущая версия поддерживает docker Управление изображениями с использованием поиска через docker-group Отправить изображение требует корпоративной версии, но вы также можете добиться эффекта Толкатиза, вытащив доменное имя/порт и Толкатьиз отдельно.

Вы можете сначала посмотреть блок-схему ниже, и тогда будет понятно, как ее настроить дальше.

Создать роль

Разрешенияиллюстрировать:документ Вот и весь складиз пула также Толкать Разрешения,и То же, что и спереди, только создатель может соответствовать из docker Разрешения

Роль тяги: тягач ,настраивать Разрешения:nx-repository-view-*-*-browse nx-repository-view-*-*-read

Роль толкателя: толкатель ,настраивать Разрешения:nx-component-upload nx-repository-view-*--

Зарегистрироваться

Учетная запись Pull: puller, установите пароль devops666, установите роль: pull-man

Толкатьсчет Число:pusher,Установить пароль devops666, установите роль: push-man

Создайте репозиторий Docker.

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

  • docker-group: объединить репозитории,Несколько удаленных и локальных репозиториев можно объединить в виртуальный репозиторий.,по умолчанию Сумка Содержит хостинг докера, докер-прокси. Извлеките адрес Сумкаиз. Конфигурация этого складского адреса (корпоративная версия поддерживает только Толкать, версия с открытым исходным кодом может быть Толкать). hosted библиотека)
  • docker-hosted: размещенный репозиторий, локальные выпуски из Сумка могут храниться в этом репозитории. Толкать Сумкаиз адрес требует Конфигурация этого склада адреса
  • docker-proxy: репозиторий прокси, кеш чиновник docker Они доступны на Сумка иот местного Служить.
  • Создайте хост-библиотеку, размещенную в Docker, отключите повторное развертывание и установите флажок, чтобы разрешить последнее развертывание. Место хранения можно выбрать самостоятельно.
  • Кроме того, вам также необходимо подготовить Отправить изображениеиздоменимя:push.nexus.devops.test.com(открытьисточникверсия нетподдерживатьиспользовать group Отправить изображение)
  • создать прокси-библиотеку docker-proxy,Конфигурацияадрес прокси:https://registry-1.docker.ioииспользовать Use Docker Hub изиндекс
  • создавать docker-group Библиотека группы: выберите хранилище участников: размещение на сервере Docker, прокси-сервер Docker. Идите направо и сохранитесь.
Конфигурация прокси-сервера nginx для отправки и получения доменных имен

Согласно документации и фактическому использованию, https необходим, поэтому он опирается на предыдущий nginx Заявка на сертификат а также dns Служитьизиспользовать, мы можем получить к нему доступ в локальной сети середина Конфигурация доменного имени nexus3 предоставил docker зеркалосклад Служить

по умолчаниютянутьиспользовать nexus.devops.test.com,Толкатьноиспользовать:push.nexus.devops.test.com

Ниже приведены nginx из Конфигурация, измененная на основе официального документа, в основном заменяющая доменное имя середина и Сертиф. Икат, потому что локальная сеть из пользовательского доменного имени должна находиться на клиенте. Установить Сертификат, чтобы не было небезопасных запросов, по той же причине. linux Для его использования также необходимо установить соответствующий pem Сертификат

Язык кода:javascript
копировать
server {
    listen       80;
    listen       443 ssl;
    server_name  nexus.devops.test.com;
    # allow large uploads of files
    client_max_body_size 10G;

    ssl_certificate      /certs/nexus.devops.test.com/server.crt;
    ssl_certificate_key  /certs/nexus.devops.test.com/server.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

     location /v2 {
      proxy_pass http://nexus_3_61:8081/repository/docker-group/$request_uri;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto "https";
    }
    location /v1 {
      proxy_pass http://nexus_3_61:8081/repository/docker-group/$request_uri;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto "https";
    }
    location / {
      proxy_pass   http://nexus_3_61:8081/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      #proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Proto "https";
    }
}

server {
    listen       80;
    listen       443 ssl;
    server_name  push.nexus.devops.test.com;
    # allow large uploads of files
    client_max_body_size 10G;

    ssl_certificate      /certs/push.nexus.devops.test.com/server.crt;
    ssl_certificate_key  /certs/push.nexus.devops.test.com/server.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

     location /v2 {
      proxy_pass http://nexus_3_61:8081/repository/docker-hosted/$request_uri;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto "https";
    }
    location /v1 {
      proxy_pass http://nexus_3_61:8081/repository/docker-hosted/$request_uri;
      proxy_set_header Host $host:$server_port;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto "https";
    }
    location / {
      proxy_pass   http://nexus_3_61:8081/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      #proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Proto "https";
    }
}

Подтверждение доступа после перезагрузки конфигурации вступает в силу https да, вступит ли в силу, а такжеможно просмотреть restapi Доступен ли интерфейс?

Пока что частный docker склад уже создан. Эта статья основана на локальной сети с собственным доменным именем. Если сервер да Служить нормально разрешает доменное имя на сервер Служить, примените. ssl Будет меньше подводных камней типа Сертификата и так далее. Далее поговорим о том, как это сделать nexus.devops.test.com,push.nexus.devops.test.com Приходитьтянуть&Толкать docker Зеркальный

Репозиторий Docker с использованием Nexus в CentOS8

Потому что доменное имя этой статьи — даLANсерединаиз. dns синтаксический анализ, поэтому он должен быть в linux серединанастраивать dns, убедитесь, что доменное имя доступно nexus доступ,Служить устройство не нужно рассматривать,Пропустите и перейдите непосредственно к использованию

  • использоватьмашинаустройство IP:192.168.123.219
Настройка DNS CentOS8

редактировать dns Конфигурациядокумент:vi /etc/resolv.conf

Язык кода:javascript
копировать
nameserver 192.168.123.214
nameserver 114.114.114.114

писатьназад Перезапуск Сеть вступает в силу:systemctl restart NetworkManager

ping nexus.devops.test.com

IP 192.168.123.214, это правильно.

Установить самозаверяющий сертификат
  1. Загрузить или написать Сертификат myCA.pem Необходимо использоватьизхост 192.168.123.219
  2. копировать Сертификатприезжать Сертификат Установить Оглавление cp ./myCA.pem /etc/pki/ca-trust/source/anchors/
  3. возобновлять Сертификаттрастовый магазин:update-ca-trust -f
  4. Перезапуск openssl Служить(Находить openssl ps aux | grep opensslиз pid: xxx xxx pid Число pts/0 R+,kill Терять pid, автоматически перезапустится kill pidЧислоилипрямой Перезапуск Служитьустройство Вступить в силу(reboot

Потому что да Самоподписанный сертификат,если не Установить Сертификат Сразуиспользовать docker login nexus.devops.test.comподскажет:tls: failed to verify certificate: x509: certificate signed by unknown authority

Сертификация источника образа Docker
Язык кода:javascript
копировать
docker login nexus.devops.test.com -u puller -p devops666
docker login push.nexus.devops.test.com -u pusher -p devops666

Вход успешенназад Можно просмотреть Конфигурацияизисточник:cat /root/.docker/config.json

Вытащить изображение
  • от nexus.devops.test.com (докер-группа) вытащить один nginx Зеркало: docker pull nexus.devops.test.com/nginx
  • После завершения извлечения в прокси-библиотеке docker-proxy середина также может просмотреть соответствующую информацию об иззеркале.
Отправить изображение
  • убеждаться push.nexus.devops.test.com зеркалоисточник Проверенный:docker login push.nexus.devops.test.com -u pusher -p devops666
  • Вытащите вышеуказанное иззеркало и вбейте его в новое:

docker tag nexus.devops.test.com/nginx push.nexus.devops.test.com/nginx_custom

  • Добавить новое иззеркало Толкать в push.nexus.devops.test.com(docker-hosted) : docker push push.nexus.devops.test.com/nginx_custom

Топтание по пит-записям

Каталог данных не настроен. Разрешения при запуске не удалось.

Каталог данных. Разрешения: Этот каталог должен быть доступен Nexus писать процесс, с UID 200 запустить в видеchown -R 200 ./data

Сравнение конфигураций NuGet V2 и NuGet V3

NuGet из API ключгенерировать,нода Нетдавать возможностьполе Конфигурация,Не могущий Толкать Доставка Nexus

  • еслипрямойиспользоватьключ Толкать,намекать 401, проверьте apikey да правильно, а такженастраивать NuGet API ключполе
  • Включить область ключей API NuGet

Когда перераспределение отключено,Но да Толкать была такая же из Сумка,вернет 400

Linux начальство Установить Сертификат,смотретьприезжать Много информации естьдаосуществлятьupdate-ca-trust Вот и все. Я выполнил шаги по настройке, но это не сработало. Наконец, я подумал, что это может быть потому, что это не подействовало. После перезапуска я обнаружил, что это правда. Поразмыслив, так и должно быть. openssl Его нужно перезапустить, и попробовав, он работает, и тогда проблему можно решить и сделать следующий шаг. Если доменное имя локальной сети неприменимо, проблем будет гораздо меньше~

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

Прежде чем решить проблему, Windows не может автоматически вводить информацию при подписании Сертификата.,Нужно написать как ниже,ссылка

Язык кода:javascript
копировать
 winpty openssl req -new -key $DOMAIN/server.key -out $DOMAIN/server.csr -subj "//C=CN\ST=Beijing\L=Beijing\O=TestOrganization\OU=TestOU\CN=TestRootCA\emailAddress=admin@test.com"

Связанные документы

постскриптум

Эта статья — плод любви, и ее определенно стоит собрать. Я также надеюсь, что читатели поставят ей еще раз лайк ~ Есть дороги в горе книг, и трудолюбие – путь, и нет предела морю учений, и трудолюбие – лодка. Одержим обучением и не может выбраться. jpg

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose