ประเภทนักเทียบท่าที่ไม่ถูกต้องควรเป็นสตริง


19

ฉันมีตัวแปรสภาพแวดล้อมต่อไปนี้ได้รับการกำหนดค่าในไฟล์ docker-compose.yml:

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

เมื่อพยายามเรียกใช้docker-compose upฉันได้รับข้อผิดพลาดนี้:

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

ฉันต้องการตัวแปรสภาพแวดล้อมที่จะตั้งเป็นสตริง JSON (ดูhttps://github.com/lorenwest/node-config/wiki/Environment-Variables#node_config )

ฉันกำลังทำอะไรผิดที่นี่? ฉันจะทำให้มันทำงานได้ไหม?


ผมคิดว่าปัญหามาจากลำไส้ใหญ่ที่อยู่ตรงกลางตามความคิดเห็นนี้เกี่ยวกับปัญหา GitHubใช้ Dict แทนของรายการควรจะทำงาน (ถอดชั้นนำ-ก่อน NODE_CONFIG
Tensibai

คำตอบ:


9

หางเขียนรัฐอ้างอิงไฟล์ที่ตัวแปรสภาพแวดล้อมที่ถูกกำหนดเป็นVARIABLE=valueองค์ประกอบมากมาย สำหรับกรณีของคุณไฟล์ docker-compose.yml จะต้องเปลี่ยนเป็น:

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

Nope ฉันลองก่อนอื่นมันไม่ทำงาน
Tri Nguyen

@TriNguyen แปลกนี่ใช้ได้กับฉัน
Hexaholic

การสร้างจะดำเนินต่อไป แต่กระบวนการของโหนดไม่สามารถทำได้
Tri Nguyen

2

องค์ประกอบ args ตัวเองต้องเป็นสตริง

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

ใช่สิ่งนี้ใช้ได้กับฉันในวันนี้
Adam Mendoza

2

คุณต้องลบเส้นประที่ด้านหน้าของตัวแปร ใช้ไวยากรณ์เช่นนั้น:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.