Я использую Docker-контейнеры в течение нескольких лет, но недавно я решил, что мне нужно улучшить безопасность и управление пользователями контейнера, объявив ПОЛЬЗОВАТЕЛЯ в Dockerfile.
Моя установка работает в Windows 10, но я получаю ошибку разрешения на Mac.
Кстати, я использую docker-compose для сборки и запуска всего, и я установил Docker Toolbox.
Итак, вот что я добавил в файл Docker:
# add node user
RUN groupadd --system --gid 61000 buink-group
RUN useradd --no-log-init --system --uid 61000 --gid buink-group node-user
RUN chgrp --recursive buink-group /var/www/html
RUN chmod g+rwx /var/www/html
...
# set user as node-user
USER node-user
Я использую файл start.sh в качестве точки входа, и в этом файле я запускаю:
npm run watch-poll
Вот ошибка, которую я получаю:
node-container |
95% emittingError: EACCES: permission denied, mkdir '/var/www/html/public/js'
node-container | npm ERR! code ELIFECYCLE
node-container | npm ERR! errno 1
node-container | npm ERR! @ watch: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=webpack.config.js "--watch-poll=200"`
node-container | npm ERR! Exit status 1
node-container | npm ERR!
node-container | npm ERR! Failed at the @ watch script.
node-container | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
node-container |
node-container | npm ERR! A complete log of this run can be found in:
node-container | npm ERR! /home/node-user/.npm/_logs/2018-09-13T18_58_07_373Z-debug.log
node-container | npm ERR! code ELIFECYCLE
node-container | npm ERR! errno 1
node-container | npm ERR! @ watch-poll: `npm run watch -- --watch-poll=200`
node-container | npm ERR! Exit status 1
node-container | npm ERR!
node-container | npm ERR! Failed at the @ watch-poll script.
node-container | npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
node-container |
node-container | npm ERR! A complete log of this run can be found in:
node-container | npm ERR! /home/node-user/.npm/_logs/2018-09-13T18_58_07_395Z-debug.log
node-container exited with code 1
Вот тома в моем файле docker-compose.yml
volumes:
- ./:/var/www/html
- composer:/var/www/html/vendor
- node_modules:/var/www/html/node_modules