Saya menghadapi beberapa masalah semasa cuba menjalankan perintah cmd
di dalam bekas docker menggunakan aplikasi go.
Ini adalah output yang saya dapat:
golang-api | /bin/sh: ./server: not found golang-api exited with code 127
Ini ialah dockerfile
from golang:1.18-alpine run apk add g++ && apk add make workdir /app copy go.mod go.sum ./ run go mod download copy . . run make build expose 8000 cmd ./server
Ini ialah fail make yang bertanggungjawab untuk arahan bina:
linux_amd64 = goos=linux goarch=amd64 cgo_enabled=1 go111module=on migrate: cd cmd/migrations/$(folder) && go run main.go build: cd cmd && $(linux_amd64) go build -a -v -tags musl -o server
Juga docker-compose.yml
version: '3.1' services: api: build: dockerfile: dockerfile context: . container_name: golang-api ports: - "8000:8000" restart: unless-stopped depends_on: - db environment: - postgres_url=$postgres_url db: image: postgres restart: always environment: postgres_user: postgres postgres_password: postgres ports: - '5432:5432'
Keluaran penuh:
Building api Sending build context to Docker daemon 74.24kB Step 1/9 : FROM golang:1.18-alpine ---> 6078a5fce1f5 Step 2/9 : RUN apk add g++ && apk add make ---> Using cache ---> 2a85b9182b80 Step 3/9 : WORKDIR /app ---> Using cache ---> baf1e6b7047c Step 4/9 : COPY go.mod go.sum ./ ---> Using cache ---> 1f2d031bc1b0 Step 5/9 : RUN go mod download ---> Using cache ---> 471d6f24e6a9 Step 6/9 : COPY . . ---> eaa86ff7cb1b Step 7/9 : RUN make build ---> Running in d6ae6ce79222 cd cmd && GOOS=linux GOARCH=amd64 CGO_ENABLED=1 GO111MODULE=on go build -a -v -tags musl -o server internal/goos internal/goarch internal/race internal/unsafeheader internal/goexperiment runtime/internal/syscall internal/cpu sync/atomic runtime/internal/atomic internal/itoa math/bits internal/abi runtime/internal/math runtime/internal/sys unicode/utf8 unicode container/list crypto/internal/subtle crypto/subtle unicode/utf16 vendor/golang.org/x/crypto/cryptobyte/asn1 internal/nettrace vendor/golang.org/x/crypto/internal/subtle encoding github.com/mymachine/my-api/internal/controllers/dto github.com/mymachine/my-api/internal/controllers/helpers internal/bytealg math runtime internal/reflectlite sync internal/testlog internal/singleflight math/rand runtime/cgo errors sort internal/oserror strconv path vendor/golang.org/x/net/dns/dnsmessage io crypto/elliptic/internal/fiat syscall golang.org/x/text/internal/tag hash bytes strings hash/crc32 reflect crypto crypto/internal/randutil crypto/hmac crypto/rc4 net/http/internal/ascii vendor/golang.org/x/crypto/hkdf regexp/syntax github.com/jackc/chunkreader/v2 bufio crypto/elliptic/internal/nistec internal/syscall/unix time internal/syscall/execenv vendor/golang.org/x/text/transform golang.org/x/crypto/pbkdf2 golang.org/x/text/transform golang.org/x/text/runes golang.org/x/text/width regexp internal/poll io/fs context github.com/mymachine/my-api/internal/entities github.com/jackc/pgconn/internal/ctxwatch embed os github.com/jinzhu/inflection github.com/jinzhu/now internal/fmtsort encoding/binary crypto/ed25519/internal/edwards25519/field crypto/md5 crypto/sha512 crypto/cipher crypto/sha256 crypto/sha1 encoding/base64 fmt internal/godebug encoding/pem crypto/ed25519/internal/edwards25519 path/filepath vendor/golang.org/x/crypto/internal/poly1305 io/ioutil internal/intern vendor/golang.org/x/crypto/curve25519/internal/field vendor/golang.org/x/sys/cpu net/netip crypto/aes crypto/des vendor/golang.org/x/crypto/chacha20 github.com/jackc/pgio github.com/jackc/pgpassfile os/exec os/signal net vendor/golang.org/x/crypto/chacha20poly1305 math/big encoding/hex net/url compress/flate vendor/golang.org/x/crypto/curve25519 log vendor/golang.org/x/text/unicode/norm vendor/golang.org/x/text/unicode/bidi vendor/golang.org/x/net/http2/hpack mime mime/quotedprintable compress/gzip net/http/internal database/sql/driver github.com/mymachine/my-api/internal/pkg/errors encoding/json github.com/jackc/pgservicefile vendor/golang.org/x/text/secure/bidirule golang.org/x/text/internal/language database/sql golang.org/x/text/unicode/norm golang.org/x/text/unicode/bidi vendor/golang.org/x/net/idna os/user crypto/rand encoding/asn1 crypto/dsa crypto/elliptic crypto/ed25519 crypto/rsa github.com/jackc/pgproto3/v2 golang.org/x/text/internal/language/compact golang.org/x/text/secure/bidirule github.com/jackc/pgx/v4/internal/sanitize golang.org/x/text/language go/token vendor/golang.org/x/crypto/cryptobyte crypto/x509/pkix gorm.io/gorm/utils gorm.io/gorm/logger encoding/gob go/scanner golang.org/x/text/internal github.com/joho/godotenv crypto/ecdsa go/ast golang.org/x/text/cases github.com/joho/godotenv/autoload golang.org/x/text/secure/precis gorm.io/gorm/clause gorm.io/gorm/schema gorm.io/gorm net/textproto vendor/golang.org/x/net/http/httpproxy github.com/google/uuid crypto/x509 github.com/jackc/pgtype mime/multipart vendor/golang.org/x/net/http/httpguts crypto/tls gorm.io/gorm/migrator gorm.io/gorm/callbacks net/http/httptrace github.com/jackc/pgconn net/http github.com/jackc/pgconn/stmtcache github.com/jackc/pgx/v4 github.com/jackc/pgx/v4/stdlib gorm.io/driver/postgres github.com/mymachine/my-api/internal/infrastructure/repository github.com/mymachine/my-api/configs github.com/mymachine/my-api/internal/services github.com/mymachine/my-api/internal/services/transaction github.com/mymachine/my-api/internal/controllers/handlers/health github.com/gorilla/mux github.com/mymachine/my-api/internal/controllers/handlers/transaction github.com/mymachine/my-api/internal/router github.com/mymachine/my-api/cmd Removing intermediate container d6ae6ce79222 ---> 621aa6a266de Step 8/9 : EXPOSE 8000 ---> Running in 3cbd17d32c37 Removing intermediate container 3cbd17d32c37 ---> 754f71a7753e Step 9/9 : CMD ./server ---> Running in dfcdc8cd45ce Removing intermediate container dfcdc8cd45ce ---> 511dbf89a001 Successfully built 511dbf89a001 Successfully tagged my-api_api:latest Creating my-api_db_1 ... done Creating golang-api ... done Attaching to my-api_db_1, golang-api golang-api | /bin/sh: ./server: not found
Jawapan betul
Soalan selesai.
Entah bagaimana, arahan RUN cd cmd
nampaknya tidak menjana fail dalam direktori yang dijangkakan.
Cuba gunakan RUN go build cmd/main.go
daripada menggunakan makefile berfungsi, @paltaa juga menunjukkan perkara ini dalam ulasan.
Atas ialah kandungan terperinci Fail boleh laku tidak ditemui pada bekas docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Goimpactsdevelopmentpositivielythroughspeed, efficiency, andsimplicity.1) Speed: goCompilesquicklyandrunsefficiently, idealforlargeproject.2) Kecekapan: ITSComprehensivestandardlibraryraryrarexternaldependencies, enhingdevelyficiency.

C lebih sesuai untuk senario di mana kawalan langsung sumber perkakasan dan pengoptimuman prestasi tinggi diperlukan, sementara Golang lebih sesuai untuk senario di mana pembangunan pesat dan pemprosesan konkurensi tinggi diperlukan. Kelebihan 1.C terletak pada ciri-ciri perkakasan dan keupayaan pengoptimuman yang tinggi, yang sesuai untuk keperluan berprestasi tinggi seperti pembangunan permainan. 2. Kelebihan Golang terletak pada sintaks ringkas dan sokongan konvensional semulajadi, yang sesuai untuk pembangunan perkhidmatan konvensional yang tinggi.

Golang cemerlang dalam aplikasi praktikal dan terkenal dengan kesederhanaan, kecekapan dan kesesuaiannya. 1) Pengaturcaraan serentak dilaksanakan melalui goroutine dan saluran, 2) Kod fleksibel ditulis menggunakan antara muka dan polimorfisme, 3) memudahkan pengaturcaraan rangkaian dengan pakej bersih/HTTP, 4) Membina crawler serentak yang cekap, 5) Debugging dan mengoptimumkan melalui alat dan amalan terbaik.

Ciri -ciri teras GO termasuk pengumpulan sampah, penyambungan statik dan sokongan konvensional. 1. Model keseragaman bahasa GO menyedari pengaturcaraan serentak yang cekap melalui goroutine dan saluran. 2. Antara muka dan polimorfisme dilaksanakan melalui kaedah antara muka, supaya jenis yang berbeza dapat diproses secara bersatu. 3. Penggunaan asas menunjukkan kecekapan definisi fungsi dan panggilan. 4. Dalam penggunaan lanjutan, kepingan memberikan fungsi saiz semula dinamik yang kuat. 5. Kesilapan umum seperti keadaan kaum dapat dikesan dan diselesaikan melalui perlumbaan getest. 6. Pengoptimuman prestasi menggunakan objek melalui sync.pool untuk mengurangkan tekanan pengumpulan sampah.

Pergi bahasa berfungsi dengan baik dalam membina sistem yang cekap dan berskala. Kelebihannya termasuk: 1. Prestasi Tinggi: Disusun ke dalam Kod Mesin, Kelajuan Berjalan Cepat; 2. Pengaturcaraan serentak: Memudahkan multitasking melalui goroutine dan saluran; 3. Kesederhanaan: sintaks ringkas, mengurangkan kos pembelajaran dan penyelenggaraan; 4. Cross-Platform: Menyokong kompilasi silang platform, penggunaan mudah.

Keliru mengenai penyortiran hasil pertanyaan SQL. Dalam proses pembelajaran SQL, anda sering menghadapi beberapa masalah yang mengelirukan. Baru-baru ini, penulis membaca "Asas Mick-SQL" ...

Hubungan antara konvergensi stack teknologi dan pemilihan teknologi dalam pembangunan perisian, pemilihan dan pengurusan susunan teknologi adalah isu yang sangat kritikal. Baru -baru ini, beberapa pembaca telah mencadangkan ...


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod