tipe docker-compose tidak valid, harus berupa string

19

Saya memiliki variabel lingkungan berikut yang dikonfigurasi dalam file docker-compose.yml:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'

Saat mencoba menjalankan docker-compose up, saya mendapatkan kesalahan ini:

services.server.environment contains {"NODE_CONFIG": "{\"DATABASE_URL\":\"http://db:5984\"}"}, which is an invalid type, it should be a string

Saya perlu variabel lingkungan diset ke string JSON (lihat https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Apakah saya melakukan sesuatu yang salah di sini? Bisakah saya membuatnya berfungsi entah bagaimana?

Tri Nguyen
sumber
Saya pikir masalahnya berasal dari titik dua di tengah, menurut komentar ini pada masalah github menggunakan dict bukan daftar harus bekerja (menghapus yang terdepan -sebelum NODE_CONFIG
Tensibai

Jawaban:

9

The Docker Compose file referensi menyatakan , bahwa variabel lingkungan didefinisikan sebagai VARIABLE=valueelemen array. Untuk kasus Anda, file docker-compose.yml perlu diubah menjadi ini:

version: '3'
services:
  server:
    ports:
     - 13045:3000
    environment:
     - NODE_CONFIG='{"DATABASE_URL":"http://db:5984"}'
Hexaholic
sumber
Nggak. Saya mencobanya dulu, itu tidak berhasil.
Tri Nguyen
@TriNguyen Strange, ini bekerja untuk saya
Hexaholic
Ya, build akan melaluinya, tetapi proses node tidak mengambilnya.
Tri Nguyen
2

Elemen args sendiri harus berupa string

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'
Richard Collette
sumber
ya, ini bekerja untuk saya hari ini.
Adam Mendoza
2

Anda perlu menghapus tanda hubung di depan variabel. Gunakan sintaks seperti itu:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Jumshud
sumber