Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie einen einfachen Docker-Container mit installierten Go-Dienstprogrammen

So erstellen Sie einen einfachen Docker-Container mit installierten Go-Dienstprogrammen

PHPz
PHPznach vorne
2024-02-11 16:24:11844Durchsuche

如何创建安装了 Go 实用程序的简单 Docker 容器

Der PHP-Editor Zimo zeigt Ihnen, wie Sie einen einfachen Docker-Container erstellen und Go-Dienstprogramme darin installieren. Docker ist eine beliebte Containerisierungsplattform, die Entwicklern hilft, Anwendungen mit ihren Abhängigkeiten zu verpacken, um sie einfach bereitzustellen und in verschiedenen Umgebungen auszuführen. Go ist eine schnelle, effiziente Programmiersprache mit vielen hervorragenden Dienstprogrammen. In diesem Artikel erfahren Sie, wie Sie mit Docker einen einfachen Container mit installierten Go-Dienstprogrammen erstellen, damit Sie schnell mit der Verwendung einer Go-Entwicklungsumgebung beginnen können. Lasst uns beginnen!

Frageninhalt

Ich habe die Docker-Funktionalität untersucht, um einfache Container mit einigen installierten Go-Dienstprogrammen zu erstellen. Ich muss ein Image mit installiertem Dienstprogramm gosecgovulncheck erstellen, damit ich sie mit dem Code im Container ausführen kann. Mein kleiner Versuch brachte folgende Ergebnisse:

# syntax=docker/dockerfile:1
from golang:1.19-alpine

workdir /app
env go111module=on

# copying my code to check
copy go.mod ./
copy go.sum ./
run go mod download
copy *.go ./

run go build -o /docker-gs-ping

run apk add --no-cache git
run go install github.com/securego/gosec/v2/cmd/gosec@latest
run go install golang.org/x/vuln/cmd/govulncheck@latest

expose 8080

cmd [ "gosec ./..." ]

Das Ausführen des Containers führt zu folgendem Fehler:

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "gosec ./...": stat gosec ./...: no such file or directory: unknown.
ERRO[0000] error waiting for container: context canceled

Sieht so aus, als müsste ich den Pfad zum installierten Dienstprogramm angeben, aber ich bekomme es nicht zum Laufen.

Problemumgehung

Es handelt sich nicht um ein Pfadproblem. Das Problem ist Ihr Befehl in cmd 语句中使用的语法。您正在使用 cmd 语句的 json 格式; json 列表中的第一个参数是要运行的命令的名称。您已要求 docker 运行名为 gosec ./... der Docker-Datei, der natürlich nicht existiert.

Sie müssen es in mehrere Listenelemente aufteilen:

cmd [ "gosec", "./..." ]

Alternativ können Sie die Shell-Form des cmd-Befehls verwenden:

CMD  gosec ./...

Alles davon wird ausgeführt, wenn Sie den Container starten gosec .

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen einfachen Docker-Container mit installierten Go-Dienstprogrammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen