У меня есть очень простое приложение Node.js, которое принимает местоположение в качестве аргумента командной строки (const location = process.argv[2];
) и записывает погоду этого местоположения на консоль. Я пытаюсь запустить его в docker контейнере, просто чтобы попрактиковаться с docker.
Вот файл Docker:
FROM node:10
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
ENV location=San\ Diego
CMD ["sh", "-c", "node app.js ${location}"]
Проблема в том, что я не могу передать переменную окружения, содержащую более одного слова. Например, San Diego
запускается как San
. Это относится как к переменной окружения по умолчанию в Dockerfile, так и к любым переменным среды, которые я передаю при запуске образа.
Как я могу сделать так, чтобы я мог передать что-то вроде Los Angeles
и получить приложение извлекает данные для Лос-Анджелеса как для переменной ENV в Dockerfile, так и для любой переменной среды, переданной в качестве аргумента при запуске образа?