#!/bin/bash if [[ ! -d "/go/bin" ]]; then # если папка bin не существует устанавливаем в систему go cd / echo "Собираем golang" >> /app/out.log wget https://go.dev/dl/go1.24.0.linux-amd64.tar.gz tar -C /go -xzf go1.24.0.linux-amd64.tar.gz rm -f go1.24.0.linux-amd64.tar.gz CGO_ENABLED=0 go install -ldflags "-s -w -extldflags '-static'" github.com/go-delve/delve/cmd/dlv@latest echo "Golang собран" >> /app/out.log fi if [ "$ARG1" = "debug" ]; then # Собираем приложение для дебага cd /app || exit 1 rm -f "/dist/local_app_name" echo "" > /app/out.log echo "" > /app/err.log echo "" > /app/dlv.log pkill -f /dist/local_app_name go build -gcflags "all=-N -l" -o /dist/local_app_name > /app/out.log 2> /app/err.log if [ ! -s "/app/err.log" ]; then dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec /dist/local_app_name server > /app/out.log 2> /app/dlv.log fi else # Собираем приложение cd /app || exit 1 rm -f "/dist/local_app_name" echo "" > /app/out.log echo "" > /app/err.log pkill -f /dist/local_app_name go build -o "/dist/local_app_name" > /app/out.log 2> /app/err.log if [ ! -s "/app/err.log" ]; then /dist/local_app_name server > /app/out.log 2> /app/err.log fi fi