Maison > développement back-end > Golang > le corps du texte

Comment créer un conteneur Docker simple avec les utilitaires Go installés

PHPz
Libérer: 2024-02-11 16:24:11
avant
821 Les gens l'ont consulté

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

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!

Contenu de la question

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 gosecgovulncheck 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 ./..." ]
Copier après la connexion

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
Copier après la connexion

On dirait que je dois spécifier le chemin d'accès à l'utilitaire installé, mais je n'arrive pas à le faire fonctionner

Solution de contournement

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", "./..." ]
Copier après la connexion

Vous pouvez également utiliser le formulaire shell de la commande cmd :

CMD  gosec ./...
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!