Comments 21
Я бы дописал какую команду запускать в «Запуск без sudo» чтобы знать как именно добавить пользователя в группу. Спасибо.
0
Как вы посоветуете решать проблему с установкой библиотек в контейнере, если не хочется поднимать тулчейн языка на хосте? Например, для проекта на nodejs нужен npm install. Если выполнять его в докере, со стандартной структурой проекта с node_modules в корне, то после маппинга volume папка node_modules пропадет из контейнера.
0
делать npm install не при билде, а потом, с уже замаунченым volume
0
сделать следующую структуру:
/project_cat
package.json
/project_cat
- node_modules/
- app_sources/
- package.json
package.json
"scripts": {
"start": "node server.js"
},
0
у меня на angular5 приложение. node_modules нужно в отдельный volume
Dockerfile
собираем и запускаем
я вообще docker-compose использую, чтобы еще бекенды запускались
Dockerfile
FROM node:alpine
RUN apk update && apk add git
WORKDIR /opt/app
COPY package.json .
RUN npm install
ENV PATH="$PATH:./node_modules/.bin"
VOLUME /opt/app/node_modules
CMD npm run serve:docker
собираем и запускаем
docker create -t myapp .
docker volume create node_modules
docker run -v node_modules:/opt/app/node_modules -v `pwd`:/opt/app -p 4200:4200 myapp
я вообще docker-compose использую, чтобы еще бекенды запускались
0
В docker-compose
Первый элемент — забрасывает локальную папку(./backend) в контейнер по пути(/app)
Второй элемент — это трюк который дает ожидаемое поведение, подробнее в статье jdlm.info/articles/2016/03/06/lessons-building-node-app-docker.html
volumes:
- ./backend:/app
- /app/node_modules
Первый элемент — забрасывает локальную папку(./backend) в контейнер по пути(/app)
Второй элемент — это трюк который дает ожидаемое поведение, подробнее в статье jdlm.info/articles/2016/03/06/lessons-building-node-app-docker.html
0
Да, тоже видел эту статью.
Работает — но с существенным ограничением: на хосте папка node_modules не появляется. А это значит отсутствие автодополнения и возможности модификации библиотек с хоста.
Конечно, можно потом эту папку скопировать через docker cp, но это во-первых муторно и печально, а во-вторых, изменения файлов все равно не синхронизируются.
Работает — но с существенным ограничением: на хосте папка node_modules не появляется. А это значит отсутствие автодополнения и возможности модификации библиотек с хоста.
Конечно, можно потом эту папку скопировать через docker cp, но это во-первых муторно и печально, а во-вторых, изменения файлов все равно не синхронизируются.
0
Docker же мёртв? :)
0
Знает кто статью, в которой описан запуск и работа с приложением на RubyOnRails через докер в винде? То что я находил там совсем непонятно.
0
Статья не отражает суть контент изложенного в ней, по названию написание кода в докер контейнере, а по факту мы его там только выполняем. Для написание все равно придётся ставить ide и к ней наверняка понадобятся ещё и библиотеки, меньше чем к языку программирования но все равно понадобятся, а если нужна будет консоль от языка программирования? То что делать? Бежать в докер контейнер и забить на поддержку консоли в ide?
0
Всегда можно взять в руки vim и идти править файлы внутри запущенного контейнера. Цель статьи была показать, что это неудобно и править файлы удобнее вне контейнера и сразу же их запускать/тестировать в настроенном окружении.
Если же нужна консоль контейнера — то одна открытая (на момент запуска контейнера) у вас уже есть. Если же нужны дополнительные, то "docker exec -it bash" в том числе и в консоли ide.
0
Если вы запускаете контейнер на хосте под управлением Linux, при монтировании домашней директории хорошо бы сделать mapping текущего пользователя, иначе файлы созданные из контейнера будут принадлежать пользователю контейнера (чаще всего это root). Docker for Mac лишен этого недостатка и делает mapping автоматически.
+1
Sign up to leave a comment.
Написание кода в docker окружении