Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara membuat bekas Docker mudah dengan utiliti Go dipasang

Cara membuat bekas Docker mudah dengan utiliti Go dipasang

PHPz
PHPzke hadapan
2024-02-11 16:24:11801semak imbas

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

Editor PHP Zimo akan memperkenalkan anda cara mencipta bekas Docker mudah dan memasang utiliti Go di dalamnya. Docker ialah platform kontena popular yang membantu pembangun membungkus aplikasi dengan kebergantungan mereka untuk penggunaan mudah dan berjalan dalam persekitaran yang berbeza. Go ialah bahasa pengaturcaraan yang pantas dan cekap dengan banyak utiliti yang sangat baik tersedia. Artikel ini akan menunjukkan kepada anda cara menggunakan Docker untuk mencipta bekas ringkas dengan utiliti Go dipasang supaya anda boleh mula menggunakan persekitaran pembangunan Go dengan cepat. Mari mulakan!

Kandungan soalan

Saya telah menerokai fungsi docker untuk mencipta bekas mudah dengan beberapa utiliti go dipasang. Saya perlu mencipta imej dengan utiliti gosecgovulncheck dipasang supaya saya boleh menjalankannya pada kod dalam bekas. Percubaan kecil saya menghasilkan keputusan berikut:

# 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 ./..." ]

Menjalankan bekas mengakibatkan ralat:

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

Nampaknya saya perlu menentukan laluan ke utiliti yang dipasang, tetapi saya tidak dapat menjalankannya

Penyelesaian

Ia bukan isu laluan; Masalahnya ialah arahan anda dalam cmd 语句中使用的语法。您正在使用 cmd 语句的 json 格式; json 列表中的第一个参数是要运行的命令的名称。您已要求 docker 运行名为 gosec ./... dockerfile yang sudah tentu tidak wujud.

Anda perlu membahagikannya kepada beberapa item senarai:

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

Sebagai alternatif, anda boleh menggunakan bentuk shell arahan cmd:

CMD  gosec ./...

Mana-mana daripada ini akan berjalan apabila anda memulakan bekas gosec .

Atas ialah kandungan terperinci Cara membuat bekas Docker mudah dengan utiliti Go dipasang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam