Deploy golang приложения на сервер rhel8?

Чтобы задеплоить Go-приложение на сервер RHEL 8, вам понадобится ряд шагов. Вот подробное пошаговое руководство:

Шаг 1: Установка Go
1.1 Откройте терминал и выполните следующую команду, чтобы загрузить архив Go:

wget https://golang.org/dl/goX.XX.X.linux-amd64.tar.gz

1.2 Распакуйте архив с помощью следующей команды:

sudo tar -C /usr/local -xzf goX.XX.X.linux-amd64.tar.gz

1.3 Добавьте к переменной PATH путь к исполняемым файлам Go, выполнив следующую команду:

echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc

1.4 Проверьте установку, выполните команду:

go version

Шаг 2: Создание и сборка Go-приложения
2.1 Создайте каталог для вашего проекта:

mkdir -p ~/go/src/<имя_проекта>

2.2 Перейдите в каталог проекта:

cd ~/go/src/<имя_проекта>

2.3 Создайте файл с исходным кодом вашего приложения, например main.go:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

2.4 Соберите приложение с помощью команды go build:

go build

Шаг 3: Настройка сервера RHEL 8
3.1 Установите необходимые зависимости для вашего Go-приложения, например базу данных или дополнительные пакеты:

sudo dnf install <пакеты_зависимостей>

Шаг 4: Деплой Go-приложения на сервер
4.1 Скопируйте скомпилированный исполняемый файл в нужную директорию на сервере, например /opt/<имя_проекта>:

sudo cp <имя_проекта> /opt/<имя_проекта>

4.2 Настройте системный сервис для запуска приложения в фоновом режиме. Создайте файл с расширением ".service" в директории /etc/systemd/system, например <имя_проекта>.service и добавьте следующий контент в файл:

[Unit]
Description=<Описание приложения>
After=network.target

[Service]
ExecStart=/opt/<имя_проекта>/<имя_проекта>
WorkingDirectory=/opt/<имя_проекта>
User=<имя_пользователя>
Group=<имя_группы>
Restart=always

[Install]
WantedBy=multi-user.target

4.3 Активируйте сервис и запустите приложение:

sudo systemctl enable <имя_проекта>.service
sudo systemctl start <имя_проекта>.service

4.4 Проверьте статус сервиса:

sudo systemctl status <имя_проекта>.service

Поздравляю, ваше Go-приложение успешно задеплоено на сервере RHEL 8!