これは非常に単純なはずでしたが、私は何か非常に初歩的なものを見逃しているようです。ローカルのNickxコンテナのアプリケーションとノードエクスプレスコンテナのプロキシを使用した
ローカルのMacBookでPOCを実行しています。基本的な考え方は、create-react-app
build
スクリプトを使用して構築されたReact Appをローカルのnginx-alpine
コンテナにデプロイすることです。私はそれを得ることができます。私はindex.htmlにアクセスして、クライアントコンテナが動作しているときに何が表示されるのかを確認することができます。
私は同じローカルマシンでnode-express
バックエンドを実行しており、node
ドッカーイメージを使用して立ち上がっています。私はこれを設定することができ、私はこれらの画像が私のブラウザから提供されているエンドポイントを打つことができます。
私の反応内のapi
がこれらの特急エンドポイントと呼ばれるときに問題が発生します。私はnginx.conf
にproxy_pass
を設定して、それを設定する方法を数多く試しました。それのどれも働かない。私はlocalhost
を使用しようとしました。127.0.0.1
を使用して疲れました。ドッカーコンテナのIPアドレスを使って試してみました。にupstream
として設定しようとしました。proxy_pass
に直接バックエンドURLを使ってみました。何も動作しません。ここで
がコードです...
http://localhost/
- >ロードUI
http://localhost:3001/features
- >コンポーネントである - >は、私が
http://localhost/admin
UI
fetch
APIを使用して、
/features
のパスを読み込みます。
upstream app_servers {
server localhost:3001;
}
# Configuration for the server
server {
# Running port
listen 80;
root /usr/share/nginx/html;
location/{
try_files $uri /index.html;
}
# Proxying the connections connections
location /features {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
nginx.conf
は私の設定ファイルで、明らかに何か問題はありますか?
このdocker-compose
を使用してバックエンドAPIを起動しましたが、これは私のブラウザからエンドポイントを正しく使用できるため問題ではないと思います。しかしここでそれは決して無限です。
version: '2'
services:
thing1:
image: toggler-backend
container_name: thing1
volumes:
- ./backend:/src/backend
ports:
- "3001:3000"
UIのDockerfile
はこの...
FROM nginx:alpine
COPY nginx.conf /etc/nginx
COPY build /usr/share/nginx/html
であると私は今のdocker run
コマンドを使用してUIを起動します。
docker run -it -p 80:80 toggler-client