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?


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"}'

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'

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"}'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.