


Mengapa fail tidak dapat ditemui selepas menyalinnya ke bekas?
editor php Yuzai mungkin menghadapi masalah biasa apabila menggunakan teknologi kontena: fail tidak dapat ditemui selepas ia disalin ke bekas. Masalah ini biasanya berlaku apabila menggunakan platform kontena seperti Docker. Sebabnya mungkin laluan fail ditetapkan dengan tidak betul, atau sistem fail di dalam bekas tidak konsisten dengan mesin hos. Terdapat banyak cara untuk menyelesaikan masalah ini, seperti menggunakan laluan mutlak atau menyalin fail ke dalam bekas melalui folder kongsi. Sebelum menyelesaikan masalah ini, kita perlu terlebih dahulu memahami hubungan pemetaan antara sistem fail kontena dan laluan fail, dan cara mengkonfigurasi laluan fail dengan betul.
Kandungan soalan
Saya mempunyai fail docker seperti yang ditunjukkan di bawah:
from golang:1.19 as builder workdir /app copy . . run cgo_enabled=0 go build -v -o "hello-bin" #from scratch from alpine copy --from=builder /app/hello-bin /app/hello-bin copy --from=builder /app/start.sh /app/start.sh workdir /app entrypoint [ "./start.sh" ]
Ia hanya membina binari daripada fail hello-world go. Walau bagaimanapun, apabila saya cuba menjalankan bekas ini dengan tetapan karang docker berikut, ia menunjukkan exec ./start.sh: no such file or directory
.
version: "3" services: hello: restart: always build: context: . dockerfile: dockerfile
Struktur direktori ialah
❯ tree . . ├── dockerfile ├── docker-compose.yaml ├── go.mod ├── hello ├── init.go └── start.sh
Oleh itu start.sh
应通过 copy 加载到 <code>builder
容器中。 . 行也是如此,它应该通过 copy --from=builder /app/start.sh /app/start.sh
disalurkan ke bekas kedua.
Konteks, kandungan start.sh
adalah seperti berikut:
#!/bin/bash _main() { echo "start" } _main "$@"
Bahagian yang paling mengelirukan bagi saya ialah jika saya menukarnya kepada cmd [ "ls", "-l" ]
dalam fail docker ia sebenarnya mencetaknya
awesomeproject3-hello-1 | -rwxr-xr-x 1 root root 1819562 May 19 02:41 hello-bin awesomeproject3-hello-1 | -rwxrwxrwx 1 root root 51 May 19 02:39 start.sh
Jika saya menukarnya kepada entrypoint [ './hello-bin' ]
,二进制文件也会成功运行。我只是不明白为什么它说没有 ./start.sh
dalam fail docker.
Kemas kini: Diilhamkan oleh @larsks, saya perasan bahawa jika saya menukar pengepala ./start.sh
daripada ./start.sh
的标头从 #!/bin/bash
更改为 #!/bin/sh
,它会神奇地工作。我仍然很困惑这里的根本问题是什么,如果我想保留 bash 标头,我应该如何修复 docker 文件?
解决方法
发生错误是因为您在 start.sh
中使用了 #!/bin/bash
, ia berfungsi secara ajaib. Saya masih keliru apakah isu asas di sini, bagaimana saya harus membetulkan fail docker jika saya mahu menyimpan pengepala bash?
PenyelesaianRalat berlaku kerana anda menggunakan #!/bin/bash
dalam
bash
Imej docker Alpine tidak mempunyai bash yang dipasang secara lalai. Ia menggunakan cangkerang Busybox sebaliknya.
Boleh pasang #!/bin/bash
更改为 #!/bin/sh
dalam bekas. Lihat
Atas ialah kandungan terperinci Mengapa fail tidak dapat ditemui selepas menyalinnya ke bekas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bitcoin, sebagai mata wang kripto, telah mengalami turun naik pasaran yang ketara sejak penubuhannya. Artikel ini akan memberikan gambaran keseluruhan harga sejarah Bitcoin sejak kelahirannya untuk membantu pembaca memahami arah aliran harga dan detik pentingnya. Dengan menganalisis data harga sejarah Bitcoin, kami dapat memahami penilaian pasaran terhadap nilainya, faktor yang mempengaruhi turun naiknya, dan menyediakan asas untuk keputusan pelaburan masa hadapan.

Sejak penciptaannya pada tahun 2009, harga Bitcoin telah mengalami beberapa turun naik utama, meningkat kepada $ 69,044.77 pada November 2021 dan jatuh ke $ 3,191.22 pada Disember 2018. Sehingga Disember 2024, harga terkini telah melebihi $ 100,204.

Harga USD Bitcoin masa nyata Faktor yang menjejaskan harga bitcoin Petunjuk untuk meramalkan harga bitcoin masa depan Berikut adalah beberapa maklumat penting mengenai harga Bitcoin pada 2018-2024:

Ya, pengeluaran halaman H5 adalah kaedah pelaksanaan penting untuk pembangunan front-end, yang melibatkan teknologi teras seperti HTML, CSS dan JavaScript. Pemaju membina halaman H5 yang dinamik dan berkuasa dengan bijak menggabungkan teknologi ini, seperti menggunakan & lt; kanvas & gt; Tag untuk menarik grafik atau menggunakan JavaScript untuk mengawal tingkah laku interaksi.

Kaedah penyesuaian simbol saiz semula dalam CSS bersatu dengan warna latar belakang. Dalam perkembangan harian, kita sering menghadapi situasi di mana kita perlu menyesuaikan butiran antara muka pengguna, seperti menyesuaikan ...

Cara menggunakan JavaScript atau CSS untuk mengawal bahagian atas dan akhir halaman dalam tetapan percetakan penyemak imbas. Dalam tetapan percetakan penyemak imbas, ada pilihan untuk mengawal sama ada paparan ...

Mengenai sebab-sebab dan penyelesaian untuk memaparkan unsur-unsur blok sebaris. Apabila menulis susun atur laman web, kami sering menghadapi masalah paparan yang kelihatan aneh. Bandingkan ...

Masalah pembukaan kontena kerana peninggalan teks yang berlebihan di bawah susun atur flex dan penyelesaian digunakan ...
