4
votes

puis-je développer une application native de réaction dans l'image docker

Ma machine de développement est MacBook Pro, sur lequel j'essaie de créer une image docker basée sur Ubuntu 16.04 pour développer des applications React-Native. Je sais que je peux installer react native, android, cli, etc. directement sur Mac, mais j'essaie d'éviter, car docker est meilleur pour le portage du code facilement en utilisant le pipeline git CI / CD ainsi que pour la maintenance des versions des packages, etc.

Je n'ai pas trouvé de solution viable, quelques URL que j'ai référées sont données ci-dessous pour votre référence.

  1. https://medium.com/@hmajid2301 / running-expo-react-native-in-docker-ff9c4f2a4388
  2. https://github.com/react-native -communauté / docker-android / blob / master / Dockerfile
  3. https://github.com/symbiote/docker-project / blob / master / node / Dockerfile

Mon Dockerfile est comme suit pour le moment, il construit l'image mais l'application Expo ne semble pas ouvrir mon application native de réaction.

FROM node:8.11

RUN npm install -g grunt-cli \
    && npm install -g brunch \
    && npm install -g bower \
    && npm install -g yarn \
    && npm install -g create-react-native-app \
    && npm install -g react-native-cli \ 
    && npm install -g expo-cli 
EXPORT 3000 19000 19001

CMD ["/bin/bash"]

Quelqu'un a-t-il réussi à configurer l'image Docker pour le développement d'applications mobiles natives de réaction? Si oui, veuillez partager vos connaissances.

Merci.


0 commentaires

3 Réponses :


0
votes

Je suis convaincu que ce que vous essayez de faire est possible. Sans l'avoir fait moi-même, je ne peux pas dire 100% confiance,

Cependant, votre Dockerfile est clairement faux. Je ne sais pas quelle serait la bonne manière. C'est votre travail.

Je pense que d'une manière ou d'une autre, vous devez obtenir le code natif de réaction que vous écrivez dans le conteneur. Par exemple, vous pouvez:

  • utilisez une commande COPY dans le Dockerfile;
  • ou bind le monter à l'exécution (ce que vous pourriez faire); ou
  • il existe de nombreuses autres façons d'obtenir le code dans le conteneur.

Imaginez que vous travailliez sur une machine ubuntu. Vous venez d'installer tous les logiciels, de vérifier le code source, de faire toute compilation nécessaire. Votre application React native est prête à être utilisée. Vous tapez "/ usr / bin / xyx a b c" dans le shell et la magie opère. Cela suggère que votre commande CMD devrait être "/ usr / bin / xyz a b c".


1 commentaires

salut emory, merci. Je suis conscient qu'il me manque quelque chose avec les étapes ci-dessus de Dockerfile, essayant donc de voir si quelqu'un a déjà accompli cette tâche. Mon image se construit bien, après avoir utilisé "docker run -it docker-image-tag", je peux me connecter à l'image et après cela, je suis en mesure de créer une application vierge, le problème apparaît lorsque je scanne le code QR dans L'application Expo sur mon mobile, il est impossible de charger l'application.



0
votes

Je viens de passer par là et j'ai résolu votre problème. Tout d'abord, vous devez remplacer EXPORT par EXPOSE. Deuxièmement, vous devez ouvrir les ports utilisés par expo sur le docker cmd que vous utilisez pour appeler votre machine docker en utilisant

.... -p 3000: 3000 -p 19000: 19000 -p 19001: 19001 -p 19002: 19002 ...

Enfin, exécutez votre application en utilisant npm start comme à:

exp://<ipaddress>:19000

À partir de l'Expo, recherchez cette application en utilisant l'adresse ip de votre ordinateur et le Port 19000 comme à:

expo init AwesomeProject

cd AwesomeProject
npm start # you can also use: expo start

et voila !!

Rappelez-vous: VOUS aurez besoin du nœud 10+ pour utiliser cette option

p >


0 commentaires

1
votes

Je sais que c'est un ancien post, mais je pourrais peut-être aider quelqu'un d'autre.

J'ai réussi à exécuter expo-cli dans une image docker et à faire du développement à distance en utilisant VS Code. Rédaction d'un article de blog expliquant le flux de travail. Vous pouvez consulter le post ici . < / p>

Tous les fichiers docker sont transférés vers git .


0 commentaires