1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Zinc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 6.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 12:45 c43eb44

Вклад в ZincSearch

Настройка среды разработки

Необходимые условия

ZincSearch использует Go (для сервера) и VueJS (для веб-интерфейса).

Необходимо установить следующее:

  1. Git.
  2. Go 1.16+ (рекомендуется go 1.19+).
  3. Node.js версии 14+ и npm версии 6+.

Сборка из исходного кода

Давайте клонируем репозиторий и начнём

git clone https://github.com/zincsearch/zincsearch
cd zincsearch

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

cd web
npm install
npm run build
cd ..

Вывод будет сохранён в папке web/dist. Папка web/dist будет встроена в двоичный файл ZincSearch при сборке приложения ZincSearch на Go.

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

Время собрать приложение на Go

Скачайте зависимости:

go mod tidy # это загрузит библиотеки Go, используемые zincsearch

Просто:

go build -o zincsearch cmd/zincsearch/main.go # создаст двоичный файл ZincSearch

Продвинутый:

CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w -X github.com/zincsearch/zincsearch/pkg/meta.Version=${VERSION} -X github.com/zincsearch/zincsearch/pkg/meta.CommitHash=${COMMIT_HASH} -X github.com/zincsearch/zincsearch/pkg/meta.BuildDate=${BUILD_DATE}" -o zincsearch cmd/zincsearch/main.go

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

Установка CGO_ENABLED = 0 позволяет выполнить статическое связывание, что приводит к созданию одного двоичного файла без зависимостей.

Настройка ldflags позволяет передавать значения, такие как номер версии, в двоичный файл во время сборки вместо жёсткого кодирования значения в исходном коде. Обычно номер версии устанавливается конвейером CI во время сборки с использованием тега git.

Разработка

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

Есть две области разработки:

  • Пользовательский интерфейс.
  • Сервер.

Сервер

go mod tidy
ZINC_FIRST_ADMIN_USER=admin ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123 go run cmd/zincsearch/main.go

Это запустит сервер API ZincSearch на порту 4080.

Переменные среды ZINC_FIRST_ADMIN_USER и ZINC_FIRST_ADMIN_PASSWORD требуются только при первом запуске ZincSearch.

Пользовательский интерфейс

cd web
npm install
npm run dev

Это запустит UI-сервер на порту 8080.

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

Swagger

Сервер также предоставляет конечную точку API Swagger, которую вы можете увидеть, посетив путь /swagger/index.html. Он использует gin-swagger, чтобы пометить конечные точки API аннотациями комментариев, и swag, чтобы сгенерировать спецификацию API из аннотаций в документацию Swagger 2.0.

Если вы обновляете аннотации, вам также необходимо повторно создать документацию Swagger, выполнив скрипт swagger.sh, расположенный в базовой папке проекта:

./swagger.sh
2022/05/31 10:18:13 Generate swagger docs....
2022/05/31 10:18:13 Generate general API Info, search dir:./
2022/05/31 10:18:13 Generating auth.LoginRequest
2022/05/31 10:18:13 Generating auth.LoginSuccess
2022/05/31 10:18:13 Generating auth.SimpleUser
2022/05/31 10:18:13 Generating auth.LoginError
2022/05/31 10:18:13 create docs.go at  docs/docs.go
2022/05/31 10:18:13 create swagger.json at  docs/swagger.json
2022/05/31 10:18:13 create swagger.yaml at  docs/swagger.yaml
```

## Создание образа Docker

Убедитесь, что у вас установлен [Docker](https://docs.docker.com/get-docker/).

Простая сборка:

```shell
docker build --tag zincsearch:latest . -f Dockerfile
```

Сборка для нескольких архитектур.

Для создания сборок для нескольких архитектур вам понадобится [buildx](https://docs.docker.com/buildx/working-with-buildx/), установленный. Вам нужно будет передать флаг платформы для платформы, которую вы хотите использовать.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Zinc.git
git@api.gitlife.ru:oschina-mirror/mirrors-Zinc.git
oschina-mirror
mirrors-Zinc
mirrors-Zinc
main