Могу ли я разработать собственное приложение в образе докера? - PullRequest
0 голосов
/ 07 февраля 2019

Моя машина разработки - MacBook Pro, на которой я пытаюсь создать образ докера на основе Ubuntu 16.04 для разработки приложений React-Native.Я знаю, что могу установить реакцию native, Android, Cli и т. Д. Непосредственно на Mac, но я стараюсь избегать этого, так как 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 для разработки собственных мобильных приложений?Если да, пожалуйста, поделитесь своими знаниями.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 июля 2019

Я только что прошел это и решил вашу проблему.Во-первых, вам нужно заменить EXPORT на EXPOSE.Во-вторых, вам нужно открыть порты, используемые expo в docker cmd, который вы используете для вызова вашего докера, используя

.... -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

Теперь из Expo найдите это приложение, используя IP-адрес вашего компьютера и порт 19000, как в:

exp://<ipaddress>:19000

и вуаля !!

Помните: вам понадобится узел 10+, чтобы использовать эту опцию

0 голосов
/ 07 февраля 2019

Я очень уверен, что то, что вы пытаетесь сделать, возможно.Не сделав этого сам, я не могу сказать, 100% уверенность,

Однако ваш Dockerfile явно ошибочен.Я не знаю, каким будет правильный путь.Это ваша работа.

Я думаю, что каким-то образом вам нужно получить реактивный код, который вы пишете в контейнер.Например, вы можете:

  • использовать команду COPY в Dockerfile;
  • или связать ее при выполнении (что вы, возможно, делаете);или
  • Есть много других способов загрузить код в контейнер.

Представьте, что вы работаете на машине с Ubuntu.Вы только что установили все программное обеспечение, проверили исходный код, произвели необходимую компиляцию.Ваше реактивное приложение готово к использованию.Вы вводите "/ usr / bin / xyx abc" в оболочку, и происходит волшебство.Это говорит о том, что ваша команда CMD должна быть "/ usr / bin / xyz abc".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...