Wiederverwendbares Docker-Bild für AngularJS
Wir haben eine AngularJS-Anwendung. Wir haben ein Dockerfile dafür geschrieben, damit es auf jedem System wiederverwendbar ist. Die Docker-Datei ist keine bewährte Methode, und für einige ist es vielleicht ein seltsamer Aufbau (Erstellen und Hosten in derselben Datei), aber sie wurde nur erstellt, um unsere anglejs-App lokal auf jedem PC eines jeden Entwicklers auszuführen.
Dockerfile:
FROM nginx:1.10
... Steps to install nodejs-legacy + npm
RUN npm install -g gulp
RUN npm install
RUN gulp build
.. steps to move dist folder
Wir bauen unser Image mitdocker build -t myapp:latest .
Jeder Entwickler kann unsere App mit @ ausführedocker run -d -p 80:80 myapp:latest
Aber jetzt entwickeln wir andere Backends. Wir haben also ein Backend in DEV, ein Backend in UAT, ... Es gibt also verschiedene URLs, die wir in @ verwenden müsse/config/xx.json
{
...
"service_base": "https://backend.test.xxx/",
...
}
Wir möchten diese URL nicht jedes Mal ändern, das Bild neu erstellen und starten. Wir möchten auch keine URLs (dev, uat, prod, ..) deklarieren, die dort verwendet werden können. Wir wollen unser @ durchführgulp build
Prozess mit einer Umgebungsvariablen anstelle einer fest codierten URL.
So können wir unseren Container wie folgt starten:
docker run -d -p 80:80 --env URL=https://mybackendurl.com app:latest
Gibt es jemanden, der Erfahrung mit solchen Problemen hat? Wir brauchen also eine env-Variable in unserem json und bauen sie auf und fügen die URL später hinzu, wenn das möglich ist.