docker-compose type không hợp lệ, nó phải là một chuỗi


19

Tôi có biến môi trường sau được cấu hình trong tệp docker-compose.yml:

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

Khi cố chạy docker-compose up, tôi gặp lỗi này:

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

Tôi cần biến môi trường được đặt thành chuỗi JSON (xem https://github.com/lorenwest/node-config/wiki/En Môi-Variables # node_config )

Tôi đang làm gì đó sai ở đây? Tôi có thể làm điều này để làm việc bằng cách nào đó?


Tôi nghĩ rằng vấn đề xuất phát từ dấu hai chấm ở giữa, theo nhận xét này về vấn đề github bằng cách sử dụng một lệnh thay vì danh sách sẽ hoạt động (loại bỏ hàng đầu -trước NODE_CONFIG
Tensibai

Câu trả lời:


9

Các tập tin tài liệu tham khảo Docker Soạn khẳng định , rằng các biến môi trường được định nghĩa là VARIABLE=valuecác phần tử mảng. Đối với trường hợp của bạn, tệp docker-compose.yml sẽ cần được thay đổi thành:

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

Không. Tôi đã thử nó trước, nó không hoạt động.
Tri Nguyễn

@TriNguyen Lạ, cái này hiệu quả với tôi
Hexaholic

Vâng, quá trình xây dựng sẽ đi qua, nhưng quá trình nút không chọn nó.
Tri Nguyễn

2

Các phần tử args cần phải là một chuỗi

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

vâng, điều này làm việc cho tôi ngày hôm nay.
Adam Mendoza

2

Bạn cần loại bỏ dấu gạch ngang trước biến. Sử dụng cú pháp như thế:

   environment:
     NODE_CONFIG: '{"DATABASE_URL":"http://db:5984"}'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.