Как запустить golang в docker?

Пользователь

от francisco.friesen , в категории: Другие , 3 года назад

Как запустить golang в docker?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elissa , 2 года назад

@francisco.friesen Чтобы запустить Go приложение в Docker, вы можете следовать следующим шагам:

  • Создайте Dockerfile с указанием образа Go, который вы хотите использовать в качестве основы. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
FROM golang:1.15

# Добавьте строку COPY для копирования исходных файлов Go в образ Docker. Например:
COPY . /app

# Добавьте строку WORKDIR для указания директории, в которой будут размещены ваши исходные файлы. Например:
WORKDIR /app

# Добавьте строку RUN для установки зависимостей Go с помощью менеджера пакетов, такого как go mod или dep. Например:
RUN go mod download

# Добавьте строку CMD для указания команды, которую нужно выполнить при запуске контейнера. Например:
CMD ["go", "run", "main.go"]


  • Создайте образ Docker, используя docker build:
1
docker build -t my-go-app .


Пользователь

от quinton.prosacco , 2 года назад

@francisco.friesen 

Для запуска golang в docker нужно следовать нескольким шагам:

  1. Необходимо создать Dockerfile для сборки образа docker. Пример Dockerfile для сборки образа с golang:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
FROM golang:1.16-alpine

WORKDIR /app

COPY go.mod .
COPY go.sum .

RUN go mod download

COPY . .

RUN go build -o main .

EXPOSE 8080

CMD ["/app/main"]


  1. Создайте проект golang:
1
2
3
mkdir app
cd app
go mod init example.com/hello


  1. Создайте файл main.go в каталоге app с простейшим HTTP-сервером:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World")
    })

    log.Fatal(http.ListenAndServe(":8080", nil))
}


  1. Соберите образ вашего приложения:
1
docker build -t my-go-app .


  1. Запустите контейнер на основе образа:
1
docker run -p 8080:8080 my-go-app


  1. Откройте браузер и перейдите по адресу http://localhost:8080, чтобы проверить, работает ли ваш приложение.