Maison >développement back-end >Golang >Comment créer un conteneur Docker simple avec les utilitaires Go installés
L'éditeur PHP Zimo vous présentera comment créer un conteneur Docker simple et y installer les utilitaires Go. Docker est une plate-forme de conteneurisation populaire qui aide les développeurs à empaqueter des applications avec leurs dépendances pour un déploiement et une exécution faciles dans différents environnements. Go est un langage de programmation rapide et efficace doté de nombreux excellents utilitaires disponibles. Cet article vous montrera comment utiliser Docker pour créer un conteneur simple avec les utilitaires Go installés afin que vous puissiez rapidement commencer à utiliser un environnement de développement Go. commençons!
J'ai exploré la fonctionnalité Docker afin de créer des conteneurs simples avec quelques utilitaires Go installés. Je dois créer une image avec l'utilitaire gosec
和 govulncheck
installé afin de pouvoir les exécuter sur le code dans le conteneur. Ma petite tentative a produit les résultats suivants :
# 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 ./..." ]
L'exécution du conteneur entraîne l'erreur :
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
On dirait que je dois spécifier le chemin d'accès à l'utilitaire installé, mais je n'arrive pas à le faire fonctionner
Ce n'est pas un problème de chemin, c'est un problème de chemin. Le problème est votre commande dans cmd
语句中使用的语法。您正在使用 cmd
语句的 json 格式; json 列表中的第一个参数是要运行的命令的名称。您已要求 docker 运行名为 gosec ./...
du dockerfile qui bien sûr n'existe pas.
Vous devez le diviser en plusieurs éléments de liste :
cmd [ "gosec", "./..." ]
Vous pouvez également utiliser le formulaire shell de la commande cmd
:
CMD gosec ./...
N'importe lequel d'entre eux s'exécutera lorsque vous démarrerez le conteneur gosec
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!