Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyahpepijat docker-compose? Di manakah laluan konfigurasi ditetapkan?

Bagaimana untuk menyahpepijat docker-compose? Di manakah laluan konfigurasi ditetapkan?

王林
王林ke hadapan
2024-02-10 12:48:20784semak imbas

Bagaimana untuk menyahpepijat docker-compose? Di manakah laluan konfigurasi ditetapkan?

Editor PHP Xinyi akan memperkenalkan anda cara menyahpepijat karang docker dan cara menetapkan laluan konfigurasi. Penyahpepijatan docker-compose ialah langkah penting dalam menyelesaikan masalah aplikasi kontena dan membantu pembangun mengenal pasti ralat dan membetulkannya. Untuk nyahpepijat docker-compose, anda perlu menyemak fail docker-compose.yml untuk mengesan ralat sintaks dan kesilapan taip. Jika fail itu betul, anda boleh menggunakan arahan `docker-compose config` untuk mengesahkan ketepatan fail konfigurasi. Laluan konfigurasi biasanya ditetapkan dalam fail docker-compose.yml dan kata kunci `volume` boleh digunakan untuk menentukan laluan kongsi antara bekas dan hos. Semasa mengkonfigurasi laluan, anda juga perlu memberi perhatian kepada sama ada laluan itu wujud pada hos untuk memastikan bekas boleh mengakses fail yang diperlukan dengan betul. Melalui kaedah di atas, anda boleh menyahpepijat docker-compose dan menetapkan laluan konfigurasi dengan mudah.

Kandungan soalan

Saya cuba nyahpepijat docker-compose, fail Go ini, untuk menyelesaikan beberapa masalah (ini). Untuk melakukan ini, saya menyediakan penyahpepijat GoLang

Output

go run main.go -f /.../project_root/docker-compose.yml -f /.../project_root/folder1/docker-compose.yml config adalah seperti yang dijangkakan, fail konfigurasi digabungkan.

Atas sebab tertentu saya tidak dapat mencari fail konfigurasi yang ditetapkan dalam kod, walaupun ia mesti ditetapkan di suatu tempat kerana outputnya ialah fail konfigurasi yang digabungkan dengan betul. Saya mengesyaki mereka mesti ditubuhkan di suatu tempat dekat sini atau sini. Tetapi di tempat sebelumnya, cli.configFile 的值为 nil,而在后一个地方,o.ConfigPaths 的值为 nil.

Jadi saya ada dua soalan:

  1. Di manakah set fail konfigurasi? dan
  2. (jika tidak dapat menjawab 1) Apakah salah saya apabila cuba mensimulasikan tingkah laku arahan docker-compose sebenar?

Sunting

Berdasarkan soalan di atas dan mencari di mana laluan konfigurasi mungkin ditetapkan, soalan saya sekarang ialah di mana untuk menetapkan laluan kelantangan.

Penyelesaian

Apakah laluan konfigurasi? Fail konfigurasi lalai (docker-compose.yaml)的路径由 cli.withdefaultconfigpath 方法设置(在 compose-go repositori). Nama yang mungkin untuk konfigurasi lalai ditetapkan di sini一>:

// defaultfilenames defines the compose file names for auto-discovery (in order of preference)
var defaultfilenames = []string{"compose.yaml", "compose.yml", "docker-compose.yml", "docker-compose.yaml"}

withdefaultconfigpath 方法会迭代此列表,如果找到匹配的文件,则会将其应用于 projectoptions 结构中的 configpaths padang, di sini:

type projectoptions struct {
    projectname   string
    profiles      []string
    configpaths   []string
    workdir       string
    projectdir    string
    envfile       string
    compatibility bool
}
Dalam kaedah

withdefaultconfigpath方法应用在toprojectoptions, di sini:

func (o *ProjectOptions) toProjectOptions(po ...cli.ProjectOptionsFn) (*cli.ProjectOptions, error) {
    return cli.NewProjectOptions(o.ConfigPaths,
        append(po,
            cli.WithWorkingDirectory(o.ProjectDir),
            cli.WithOsEnv,
            cli.WithEnvFile(o.EnvFile),
            cli.WithDotEnv,
            cli.WithConfigFileEnv,
            cli.WithDefaultConfigPath,
            cli.WithName(o.ProjectName))...)
}

Atas ialah kandungan terperinci Bagaimana untuk menyahpepijat docker-compose? Di manakah laluan konfigurasi ditetapkan?. 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