Abbiamo un'applicazione AngularJS. Abbiamo scritto un docker per esso in modo che sia riutilizzabile su ogni sistema. Il dockerfile non è una best practice ed è forse un po 'strano build up (build e hosting nello stesso file) per alcuni, ma è appena creato per eseguire localmente la nostra app angularjs su ogni PC di ogni sviluppatore.Immagine docker riutilizzabile per AngularJS
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
costruiamo la nostra immagine con docker build -t myapp:latest .
Ogni sviluppatore è in grado di eseguire la nostra applicazione con docker run -d -p 80:80 myapp:latest
Ma ora stiamo sviluppando altri backend. Così abbiamo un backend in DEV, un backend in SVS, ... Quindi ci sono diversi URL che abbiamo bisogno di usare in /config/xx.json
{
...
"service_base": "https://backend.test.xxx/",
...
}
Noi non vogliamo cambiare questo URL ogni volta, ricostruire il immagine e avviarlo. Inoltre, non vogliamo dichiarare URLS (dev, uat, prod, ..) che possono essere utilizzati lì. Vogliamo eseguire il nostro processo gulp build
con una variabile di ambiente invece di un URL codificato.
Così possiamo iniziare il nostro contenitore come questo:
docker run -d -p 80:80 --env URL=https://mybackendurl.com app:latest
C'è qualcuno che ha esperienza con questo tipo di problemi? Quindi avremo bisogno di una variabile env nel nostro json e la costruiremo e aggiungeremo l'URL in seguito, se possibile.
Quindi probabilmente ho anche bisogno di eseguire il build gulp in quel file .sh + tutti i passaggi dopo di esso – lvthillo
Non penso che sia una buona idea. entrypoint.sh verrà eseguito durante il comando di esecuzione finestra mobile e non durante la creazione della finestra mobile. Potrebbe essere necessaria una soluzione diversa se si desidera eseguire gulp come parte della build della finestra mobile. – atv
In questo caso, sta funzionando durante il comando di esecuzione della finestra mobile. Altrimenti non sarò in grado di dare un VAR ENV al mio contenitore (e di eseguire un gulp su di esso) – lvthillo