Разрешения в Docker объеме - PullRequest
0 голосов
/ 23 апреля 2020

Я борюсь с разрешениями на томе docker, мне запрещен доступ для записи.

Это небольшая часть моего docker файла

FROM ubuntu:18.04
RUN apt-get update && \
apt-get install -y \
apt-transport-https \
build-essential \
ca-certificates  \
curl \
vim && \............

RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - && apt-get install -y nodejs

# Add non-root user
ARG USER=user01
RUN useradd -Um -d /home/$USER -s /bin/bash $USER && \
apt install -y python3-pip && \
pip3 install qrcode[pil]

#Copy that startup.sh into the scripts folder
COPY /scripts/startup.sh /scripts/startup.sh

#Making the startup.sh executable
RUN chmod -v +x /scripts/startup.sh

#Copy node API files
COPY --chown=user1 /node_api/* /home/user1/

USER $USER
WORKDIR /home/$USER

# Expose needed ports
EXPOSE 3000

VOLUME /data_storage

ENTRYPOINT [ "/scripts/startup.sh" ]

Также небольшая часть часть моего запуска. sh

#!/bin/bash

/usr/share/lib/provision.py --enterprise-seed $ENTERPRISE_SEED > config.json

Затем моя команда docker builds:

sudo docker build -t mycontainer .

И команда запуска docker:

sudo docker run -v data_storage:/home/user01/.client -p 3008:3000 -itd mycontainer 

У меня проблема в том, что скрипт Python создаст папку: /home/user01/.client и скопирует туда несколько файлов. Это всегда работало нормально. Но теперь я хочу эти файлы, которые являются файлами данных, в томе для резервного копирования. И когда я сопоставляю свой том, я получаю отказ в разрешении, поэтому скрипт python больше не может писать.

Так что в конце моего dockerfile эта инструкция в сочетании с сопоставлением в docker Команда run дает мне отказано в разрешении:

VOLUME /data_storage

Есть предложения о том, как решить эту проблему? еще несколько разрешений, необходимых для "user01"? Спасибо

1 Ответ

0 голосов
/ 24 апреля 2020

Мне удалось решить мою проблему, удалив команду «volume» из файла docker и просто выполнить сопоставление в момент выполнения docker run:

sudo docker run -v data_storage : /home/user01/.client -p 3008: 3000-й mycontainer

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