J'ai une application NodeJS que je veux agrandir.
L'application se compose de deux parties:
partie serveur, exécutant une API qui prend des données d'une base de données. Cela fonctionne sur le port 3000;
partie client, qui effectue des appels aux points de terminaison API à partir de la partie serveur. Cela s'exécute sur le port 8080;
Avec cela, j'ai une variable nommée "adresse_serveur" dans ma partie client et elle a la valeur de "localhost: 3000". Mais voilà, les deux projets doivent être de la taille d'un docker dans des fichiers Dockerimage
séparés et combinés dans un docker-compose.yml
fichier.
Donc, pour certaines raisons, je dois exécuter les conteneurs Docker via docker-compose.yml
fichier. Est-il donc possible de connecter ces choses d'une manière ou d'une autre et de passer l'adresse du serveur en externe de dockerfile au projet NodeJS?
docker-composer.yml
version: "3"
services:
client-side-app:
image: my-client-side-docker-image
environment:
- BACKEND_SERVER="here we need to enter backend server"
ports:
- "8080:8080"
server-side-app:
image: my-server-side-docker-image
ports:
- "3000:3000"
les deux Dockerfile ressemble à:
FROM node:8.11.1
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "run", "dev"]
en ayant ces fichiers, j'ai le souci:
BACKEND_SERVER
en quelque sorte dans le projet? Et si oui, comment faire? Je ne fais pas référence au fichier Dockerimage
, mais plutôt au projet lui-même?Utilisez process.env dans le code node.js, comme ceci
process.env.BACKEND_SERVER
Mentionnez votre variable dans le fichier docker-compose.
version: "3"
services:
client-side-app:
image: my-client-side-docker-image
environment:
- BACKEND_SERVER="here we need to enter backend server"
ports:
- "8080:8080"
server-side-app:
image: my-server-side-docker-image
ports:
- "3000:3000"