docker-compose geçersiz tür, bir dize olmalıdır


19

Bir docker-compose.yml dosyasında yapılandırılmış aşağıdaki ortam değişkeni var:

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

Çalıştırmaya çalışırken docker-compose upşu hatayı alıyorum:

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

Ortam değişkeninin bir JSON dizesi olarak ayarlanması gerekiyor (bkz. Https://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

Burada yanlış bir şey mi yapıyorum? Bunu bir şekilde çalıştırabilir miyim?


Sorunun ortasında kolondan geldiğini düşünüyorum, liste yerine bir dikteyi kullanarak github sorununa yapılan bu yoruma göre ( -NODE_CONFIG
Tensibai 22:17

Yanıtlar:


9

Docker Oluşturma dosya referansı bildiren bu ortam değişkenleri olarak tanımlanır, VARIABLE=valuedizi elemanlarının. Sizin durumunuz için docker-compose.yml dosyasının şu şekilde değiştirilmesi gerekir:

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

Hayır! Önce denedim, işe yaramıyor.
Tri Nguyen

@TriNguyen Garip, bu benim için çalışıyor
Hexaholic

Yapı geçecekti, ama düğüm süreci onu almıyor.
Tri Nguyen

2

Args öğelerinin kendilerinin bir dize olması gerekir

  args:
    - 'MAVEN_USER=$MAVEN_USER'
    - 'MAVEN_PASSWORD=$MAVEN_PASSWORD'

evet, bu bugün benim için çalıştı.
Adam Mendoza

2

Değişkenin önündeki tire işaretini kaldırmanız gerekir. Bunun gibi bir sözdizimi kullanın:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.