/ / Obsługa repozytoriów Go Git i ich zasobów niekodowanych - git, build, go, build-process

Obsługa repozytoriów Git i ich zasobów niekodowanych - git, build, go, build-process

Jestem nowy w Go i staram się znaleźć najlepszy sposób na obsługę repozytoriów Git.

W tej chwili używam oficjalnej struktury katalogów Go, ale myślę, że ma wiele pułapek.

To jest coś w stylu

$GOPATH
bin
non-important-stuff
pkg
non-important-stuff
src
github.com
username
reponame

Chodzi o to, że mam wiele niekodujących zasobów,jak domyślne pliki ustawień, szablony html i obrazy ... ale wydaje mi się trochę dziwne umieszczenie go w katalogu "src / github.com / username / reponame" (ponieważ pierwsza część "src").

Jakie są najczęstsze rozwiązania tego problemu?

Innym problemem, z którym teraz borykam się jest to, że nie jestemznać najczęstsze narzędzia "make" do budowania całego projektu z zewnętrznymi zasobami, takimi jak pliki ustawień domyślnych lub html (polecenia "go buduj / instaluj" zajmują się tylko plikami kodu źródłowego). Jak dbać o ścieżki względne, gdy plik wykonywalny jest "zainstalowany"?

Zrzeczenie się: Przeczytałem ten wątek: Jak uzyskać dostęp do plików zasobów po tym, jak narzędzie "go" zainstalowało plik wykonywalny? , ale nie widziałem wiarygodnych rozwiązań. Mój plik wykonywalny jest serwerem i nie jest opcją, aby osadzać pliki ustawień i rekompilować za każdym razem, gdy chcę ponownie skonfigurować serwer (i nie jest to opcja przekazywania wszystkich parametrów ustawień poprzez parametry wykonawcze, ponieważ plik ustawień jest bardzo złożony).

Odpowiedzi:

1 dla odpowiedzi № 1

Zakładam, że mówisz o tworzeniu stron internetowych.

Jak poprawnie zauważyłeś, struktura katalogów jest przeznaczona dla kodu, a pakiet narzędzi go zajmuje tylko tworzenie plików binarnych i umieszczanie ich w konwencjonalnym miejscu (pkg lub bin).

To, czego potrzebujesz, to kompletna procedura wdrażania dla plików zasobów binarnych +.

Powinieneś albo rozwinąć swoją własną procedurę wdrażania, albo użyć istniejącej struktury.

Szkic domowej procedury:

  • umieść wszystkie zasoby w określonym katalogu w projekcie (np. resources/)
  • posługiwać się git archive resources/ do pakowania plików
  • skopiuj pliki obok pliku wykonywalnego
  • wybierz sposób dostosowania parametrów lokalnych (serwer bazy danych, nazwa bazy danych itp.)
  • wybierz sposób, aby serwer przeładował zasoby (zrestartuj serwer / systematycznie czytaj ponownie zasoby / sprawdź daty modyfikacji / ...)

Jeśli szukasz istniejącej struktury internetowej:

Biesiada jest jedną z opcji, która zajmuje się dużą liczbą punktów, w tym gorącą rekompilacją podczas rozwoju, oraz procedura wdrażania.