Halo,
Diberikan docker-compose 1.9.0 dan docker-compose.yml berikut:
version: '2'
services:
kafka:
image: wurstmeister/kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${HOSTNAME}
Ketika saya menjalankan perintah berikut:
ssh [email protected] "docker-compose up -d
Kemudian variabel lingkungan nama host tidak dikenali. Saya mendapatkan pesan berikut:
Variabel HOSTNAME tidak disetel. Secara default menggunakan string kosong.
Jika saya menjalankan perintah yang sama pada host "bar" dengan pengguna "foo", saya tidak mendapatkan error. Sama jika saya pertama kali terhubung dengan ssh, lalu menjalankan perintah.
Ini adalah masalah besar bagi kami. Alur kerja ini terjadi di CI kami.
Satu-satunya solusi yang kami temukan adalah menulis skrip berikut:
#!/bin/bash
export HOSTNAME=${HOSTNAME}
docker-compose up -d
Dan jalankan melalui ssh .. Yang tidak tampan ..
Nah, bukankah itu terjadi karena saat menjalankan perintah melalui ssh secara langsung, Anda sebenarnya tidak membuka shell? Artinya beberapa variabel lingkungan seperti $HOSTNAME
tidak akan disetel?
Sepertinya masalah Anda ada pada UNIX dan / atau SSH - Saya tidak melihat apa pun yang dapat dilakukan terkait hal ini di tingkat Tulis.
Itulah yang saya pikirkan. Tetapi solusi perintah berikut berfungsi .. Yang berarti variabel HOSTNAME disetel dengan benar selama sesi ssh. Jadi saya tidak tahu mengapa menulis tidak mengenalinya ... Itu aneh.
Saya menemukan ini yang tampaknya relevan. bash
tidak mengekspor $HOSTNAME
secara default, yang menjelaskan mengapa tidak terlihat oleh docker-compose
.
Saya dapat mereproduksi secara lokal di lingkungan Ubuntu 16.04 saya sehingga saya dapat mengonfirmasi bahwa ini juga tidak ada hubungannya dengan SSH.
@ shin- @made Bagaimana cara memperbaikinya di Ubuntu, harap jelaskan?
Komentar yang paling membantu
Saya menemukan ini yang tampaknya relevan.
bash
tidak mengekspor$HOSTNAME
secara default, yang menjelaskan mengapa tidak terlihat olehdocker-compose
.Saya dapat mereproduksi secara lokal di lingkungan Ubuntu 16.04 saya sehingga saya dapat mengonfirmasi bahwa ini juga tidak ada hubungannya dengan SSH.