我的开发机器是MacBook Pro,我正试图在它上创建一个基于Ubuntu 16.04的docker映像,用于开发React Native应用程序。我知道我可以直接在Mac上安装react native、android、cli等,但我尽量避免,因为docker更适合使用git CI/CD管道轻松移植代码,并维护包等版本。
我找不到任何像样的可行解决方案,下面给出了我提到的几个URL供您参考。
- https://medium.com/@hmajid2301/running-expo-react-native-in-doker-ff9c4f2a4388
- https://github.com/react-native-community/docker-android/blob/master/Dockerfile
- https://github.com/symbiote/docker-project/blob/master/node/Dockerfile
我的Dockerfile目前如下,它正在构建图像,但Expo应用程序似乎没有打开我的react原生应用程序运行。
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"]
有人成功地为react原生移动应用程序的开发设置了Docker镜像吗?如果是,请分享您的知识。
谢谢。
我知道这是一篇旧帖子,但可能会帮助其他人。
我设法在docker映像中运行expo-cli,并使用VS代码进行远程开发。写一篇博客文章解释工作流程。可以在这里查看邮件。
所有docker文件都被推送到git。
我刚刚经历了这个过程并解决了您的问题。首先,您需要将EXPORT替换为EXPOSE。其次,您需要在docker cmd上打开expo使用的端口,您可以使用调用docker机器
-p 3000:3000-p 19000:19000-p 19001:19001-p 19002:1002。。。
最后,使用npm运行你的应用程序,启动方式如下:
expo init AwesomeProject
cd AwesomeProject
npm start # you can also use: expo start
现在从世博会搜索这个应用程序,使用你的电脑ipad和19000端口,如:
exp://<ipaddress>:19000
瞧!!
记住:您需要节点10+才能使用此选项
我非常有信心,您尝试做的事情是可能的。如果没有自己做过,我不能说100%的信心,
然而,您的Dockerfile显然是错误的。我不知道正确的方法是什么。那是你的工作。
我认为,不知何故,您需要将正在编写的react本机代码放入容器中。例如,您可以:
- 在Dockerfile中使用COPY命令
- 或者在运行时绑定挂载它(您可能正在这样做);或
- 还有很多其他方法可以将代码放入容器中
想象一下你在一台ubuntu机器上工作。你只是安装了所有的软件,检查了源代码,做了任何必要的编译。您的react本机应用程序已准备好使用。在shell中键入"/usr/bin/xyx a b c",神奇的事情就发生了。这表明CMD
命令应该是"/usr/bin/xyz a b c"。