Expo React Nativeアプリをドッキングして、チームパートナーの誰もがリポジトリをダウンロードしdocker-compose up
て、同じExpoサーバーをコンピューターで実行できるようにしようとしています。
これまでのところ、コンテナーの作成を可能にしていますが、コンピューターでローカルに実行したときに表示されるのと同じ情報が表示されます。
メトロバンドラーを起動しようとすると問題が発生し、URLhttp://localhost:19002
にアクセスできません。それは完全に機能しているポート19001では起こりません。さらに、iPhoneデバイスでQRコードをスキャンしようとしましたが、Docker IPが見つからないため、どちらも機能しません。
私は自分が何を間違っているのか理解できず、Webでのdockerizeexpoに関する情報はあまりありません。
これらは私のdockerfileとdocker-compose.ymlです
FROM node:latest
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package*.json /usr/src/app/
COPY app.json /usr/src/app/
RUN npm install -g expo-cli
EXPOSE 19000
EXPOSE 19001
EXPOSE 19002
CMD npm i -f && npm start
version: '3.7' # Specify docker-compose version
# Define the services/containers to be run
services:
expo: # Name of the frontend service
container_name: expo-prestadores
build: ./ # Specify the directory of the Dockerfile
ports:
- 19000:19000 # Specify port-forwarding
- 19001:19001
- 19002:19002
volumes: # Mount host path in the container
- ./:/usr/src/app
- /usr/src/app/node_modules
理にかなっています。Expo DevToolsはlocalhost
、コンテナ内で実行されていることを通知します。
これは、コンテナ内でExpoDevToolsが使用できるのはlocalhost
。のみであることを意味します。これは、コンテナ自体の中からのみ利用できます。ポートの露出はありません。外部アクセスを許可する方法でポートバインディングを設定する必要があります。たとえば、exposeステートメントを機能させるためにコンテナのIPを介して。
要するに、EXPO_DEVTOOLS_LISTEN_ADDRESS=0.0.0.0
このような環境変数を追加します
version: '3.7' # Specify docker-compose version
services:
expo: # Name of the frontend service
container_name: expo-prestadores
build: ./ # Specify the directory of the Dockerfile
ports:
- 19000:19000 # Specify port-forwarding
- 19001:19001
- 19002:19002
volumes: # Mount host path in the container
- ./:/usr/src/app
- /usr/src/app/node_modules
environment:
- EXPO_DEVTOOLS_LISTEN_ADDRESS=0.0.0.0
あなたにdocker-compose.yml
そしてあなたは大丈夫なはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加