Запуская docker-compose.yml при инициализации и дальнейшем запуске контейнера, пишет что нет прав, как исправить?
при выполнении файла docker-compose.yml с таким содержанием вылазит в дальнейшем ошибка, говорящая за отсутствие прав на папку /.npm, как можно в данном конфигурационном файле указать после выполнения установки npm install, выдать права на папку ? Пробовал в контексте entrypoint применить chown -R 1002:1002 /.npm &&, но результатов это не дало, так как вероятно начиная с "-c" выполняется "\ строка регламента действия". Пожалуйста, скажите, какие будут рекомендации по решению проблемы, как поступать ? Можно к примеру все этапы регламентированных действий по установке, вынести из docker-compose конфигурации в dockerfile, а docker-compose будет ссылаться на него ? И если можно, то как ?
docker-compose.yml
version: "2.4"
services:
frontend-build:
image: node:buster-slim
restart: "no"
user: "${BUILD_USER-1000:1000}"
shm_size: 4gb
working_dir: /root
mem_limit: "2100000000"
ulimits:
nproc: 655350
nofile:
soft: 102400
hard: 102400
environment:
MALLOC_ARENA_MAX: 1
NODE_DISABLE_COLORS: 1
NODE_OPTIONS: "--max-old-space-size=2000 --v8-pool-size=1"
volumes: ["./:/root:delegated"]
entrypoint: [
"/bin/bash",
"-c",
"\
export &&\
id &&\
ulimit -a &&\
npm install -g [email protected] &&\
npm test &&\
npm run build || (cat /home/node/.npm/_logs/* && false)",
]
Результат:
frontend-build_1 | declare -x HOME="/"
frontend-build_1 | declare -x HOSTNAME="947cd6da2ca7"
frontend-build_1 | declare -x MALLOC_ARENA_MAX="1"
frontend-build_1 | declare -x NODE_DISABLE_COLORS="1"
frontend-build_1 | declare -x NODE_OPTIONS="--max-old-space-size=2000 --v8-pool-size=1"
frontend-build_1 | declare -x NODE_VERSION="16.3.0"
frontend-build_1 | declare -x OLDPWD
frontend-build_1 | declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
frontend-build_1 | declare -x PWD="/root"
frontend-build_1 | declare -x SHLVL="1"
frontend-build_1 | declare -x YARN_VERSION="1.22.5"
frontend-build_1 | uid=1002 gid=1002 groups=1002
frontend-build_1 | core file size (blocks, -c) unlimited
frontend-build_1 | data seg size (kbytes, -d) unlimited
frontend-build_1 | scheduling priority (-e) 0
frontend-build_1 | file size (blocks, -f) unlimited
frontend-build_1 | pending signals (-i) 23499
frontend-build_1 | max locked memory (kbytes, -l) 16384
frontend-build_1 | max memory size (kbytes, -m) unlimited
frontend-build_1 | open files (-n) 102400
frontend-build_1 | pipe size (512 bytes, -p) 8
frontend-build_1 | POSIX message queues (bytes, -q) 819200
frontend-build_1 | real-time priority (-r) 0
frontend-build_1 | stack size (kbytes, -s) 8192
frontend-build_1 | cpu time (seconds, -t) unlimited
frontend-build_1 | max user processes (-u) 655350
frontend-build_1 | virtual memory (kbytes, -v) unlimited
frontend-build_1 | file locks (-x) unlimited
frontend-build_1 | npm ERR! code EACCES
frontend-build_1 | npm ERR! syscall mkdir
frontend-build_1 | npm ERR! path /.npm
frontend-build_1 | npm ERR! errno EACCES
frontend-build_1 | npm ERR!
frontend-build_1 | npm ERR! Your cache folder contains root-owned files, due to a bug in
frontend-build_1 | npm ERR! previous versions of npm which has since been addressed.
frontend-build_1 | npm ERR!
frontend-build_1 | npm ERR! To permanently fix this problem, please run:
frontend-build_1 | npm ERR! sudo chown -R 1002:1002 "/.npm"
frontend-build_1 | cat: '/home/node/.npm/_logs/*': No such file or directory
frontend-build_1 exited with code 1
Aborting on container exit...