Arhn - архитектура программирования

Переменная окружения в Docker

У меня есть приложение, которое работает в 2 контейнерах. NodeJS и контейнер nginx. Они работают вместе. В коде разработчика есть src / app / app.config.js

(function () {
  'use strict';

  angular
    .module('app')
    .constant('config', {
      URL: 'http://localhost',
      PORT: '8888',

    });
})();

URL-адрес и ПОРТ в порядке в случае разработчика. Чтобы увидеть приложение после его локальной сборки. Но что мы делаем? Что ж, у нас есть jenkins, который выполняет npm-install, сборку gulp и т. д. После сборки. Правильно сгенерированные папки будут скопированы Dockerfiles (одна для nginx и одна для nodejs). После этого мы можем запускать контейнеры с помощью этой команды:

docker run --restart=always -d --name "nodejs" our-nodejs-image:11 
docker run --restart=always -d -p 80:80 --name nginx --link nodejs:nodejs our-nginx-image:11

Основная проблема заключается в следующем. URL и ПОРТ должны измениться. Так, например, мы запускаем наши контейнеры на ec2-123:80, тогда нам нужно изменить URL-адрес на ec2-123 и ПОРТ на 80 (поскольку nginx работает как обратный прокси-сервер для наших узлов).

Таким образом, в этом случае мы теряем преимущество докера (запуск образа в каждой среде). Итак, нам нужна переменная окружения, которую мы можем описать при выполнении команды docker run. И эти переменные должны быть вводом URL: и PORT:.

Таким образом, команда запуска для nginx должна быть примерно такой:

docker run -e "URL: ec123" -e "PORT:80" --restart=always -d -p 80:80 --name nginx --link nodejs:nodejs our-nginx-image:11

  • Я думаю, что docker inspect должен получить эту информацию, документ docs.docker.com/engine/ ссылка/командная строка/проверка 27.01.2016
  • нельзя ли просто изменить это в app.config.js? : URL: process.env.URL и когда он пытается запустить: -e URL: ec2-123 ? 27.01.2016
  • пробовал, но вроде не работает 27.01.2016
  • Зачем вам в первую очередь нужны URL и PORT в клиентском приложении? Выполняйте относительные вызовы с помощью XHR/fetch, чтобы вам не приходилось обрабатывать CORS и т. д. 31.01.2016
  • Возможный дубликат повторно используемого образа докера для AngularJS 16.08.2016

Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..