docker- कंपोज़ अवैध प्रकार, यह एक स्ट्रिंग होना चाहिए


19

मेरे पास निम्नलिखित पर्यावरण चर है जो डॉक-कंपोज़.माइल फ़ाइल में कॉन्फ़िगर किया गया है:

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 )

क्या मुझसे यहां कुछ गलत हो रहा है? क्या मुझे यह किसी भी तरह काम करने के लिए मिल सकता है?


मुझे लगता है कि समस्या बीच में बृहदान्त्र से आती है, सूची के बजाय एक तानाशाह का उपयोग करके गीथुब मुद्दे पर इस टिप्पणी के अनुसार काम करना चाहिए ( -NODE_CONFIG से पहले अग्रणी को दूर करना
Tensibai

जवाबों:


9

डोकर लिखें फ़ाइल संदर्भ में कहा गया है , कि वातावरण चर के रूप में परिभाषित कर रहे हैं VARIABLE=valueसरणी तत्वों। आपके मामले के लिए, docker-compose.yml फ़ाइल को इसे बदलने की आवश्यकता होगी:

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

नहीं। मैंने कोशिश की कि पहले, यह काम नहीं करता है।
त्रि गुयेन

@TriNguyen स्ट्रेंज, मेरे लिए यह काम करता है
Hexaholic

ठीक है, निर्माण के माध्यम से जाना होगा, लेकिन नोड प्रक्रिया इसे नहीं उठाती है।
त्रि गुयेन


2

आपको चर के सामने डैश हटाने की आवश्यकता है। सिंटैक्स का उपयोग करें जैसे:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.