Heim > Artikel > Backend-Entwicklung > So erstellen Sie einen einfachen Docker-Container mit installierten Go-Dienstprogrammen
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!
Ich habe die Docker-Funktionalität untersucht, um einfache Container mit einigen installierten Go-Dienstprogrammen zu erstellen. Ich muss ein Image mit installiertem Dienstprogramm gosec
和 govulncheck
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.
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!