我可以在docker image中开发react-native应用吗

时间:2019-02-07 08:59:11

标签: macos docker react-native

我的开发机器是MacBook Pro,我试图在其上基于Ubuntu 16.04创建一个docker镜像来开发React-Native应用程序。我知道我可以直接在Mac上安装react native,android,cli等,但是我想避免这样做,因为docker更好地使用git CI / CD管道轻松移植代码以及维护软件包等版本。

我找不到任何合适的可行解决方案,下面提供了一些我引用的URL供您参考。

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

此刻,我的Dockerfile如下所示,它正在构建映像,但是Expo应用似乎没有打开我的本机应用运行。

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"]

有人能成功设置Docker映像来开发React本机移动应用程序吗?如果是,请分享您的知识。

谢谢。

3 个答案:

答案 0 :(得分:1)

我知道它的帖子很旧,但可能会对其他人有所帮助。

我设法在docker映像中运行expo-cli并使用VS Code进行远程开发。写了一篇博客文章解释工作流程。可以查看帖子here

所有docker文件都被推送到git

答案 1 :(得分:0)

我非常有信心您尝试做的事情是可能的。没有自己做,我不能说100%的自信,

但是,您的Dockerfile显然是错误的。我不知道正确的方法。那是你的工作。

我认为您需要某种方式来获取要写入容器的本机代码。例如,您可以:

  • 在Dockerfile中使用COPY命令;
  • 或在运行时绑定安装(您可能正在做);或
  • 还有很多其他方法可以将代码放入容器中。

假设您正在使用ubuntu机器。您刚刚安装了所有软件,签出了源代码,进行了必要的编译。您的本机应用程序已准备就绪,可以使用。您在外壳中输入“ / usr / bin / xyx a b c”,魔术就发生了。这表明您的{'k': 'b'} 命令应为“ / usr / bin / xyz a b c”。

答案 2 :(得分:0)

我刚刚解决了这个问题,并解决了您的问题。首先,您需要用EXPOSE替换EXPORT。其次,您需要在使用

调用docker机器的docker cmd处打开expo使用的端口。

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

最后,使用npm start运行您的应用程序,例如:

expo init AwesomeProject

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

现在,世博会使用您的计算机IP地址和19000端口(例如,位于

)搜索此应用程序:
exp://<ipaddress>:19000

还有瞧!

请记住:您将需要10+节点才能使用此选项