Încerc să fac https://devopswithdocker.com/ desigur, dar nu sunt prea familiarizat cu node.js și reacționez. Clonez depozitul Aici și creați un Dockerfile în exemplu-backend și exemplu-front-end. Fișierele mele Dockerfile arată astfel:
exemplu-frontend/Dockerfile
DE LA nodul:14
WORKDIR /usr/src/app
COPIE . .
ENV REACT_APP_BACKEND_URL=http://127.0.0.1:8080/
RUN instalarea npm
RUN npm run build
RUN npm install -g serve
CMD serve -s -l 5000 build
exemplu-backend/Dockerfile
DIN golang:1.16
WORKDIR /usr/src/app
COPIE . .
ENV REQUEST_ORIGIN=http://127.0.0.1:5000/
RUN du-te construi
CMD ./server
Apoi pur și simplu alerg:
docker build . -t frontend
docker build . -t backend
și apoi:
docker run -p 5000:5000 frontend
docker run -p 8080:8080 backend
Când merg să testez conexiunea pe front-end primesc site-ul web cu un buton pentru a testa ruta ping pe backend, dar când îl testez, văd 403 și Politica de referință: strict-origin-when-cross-origin în rețea fila. Lucrul ciudat este că pot ajunge la ruta ping din back-end din browser-ul meu, dar nu și la containerul frontend. Am încercat să mapez porturile interne Docker la alte porturi fără succes. Am încercat să schimb http://127.0.0.1:5000/ în containerul back-end http://localhost:5000/, „*”, http://127.0.0.1/, expunând în mod explicit porturile din fișierul Docker, etc. Mă uit pe acesta de două zile. Tot ceea ce caut pe google despre această problemă vine cu schimbarea codului de nod și reacție, ceea ce nu ar trebui să facem manual.