我正在尝试更改Dockerfile上创建的文件夹persimisions以创建自定义elasticsearch图像。从dockerfile chowning docker文件夹
我不明白为什么一旦图像被拉出并且elasticsearch工作,文件夹权限保持不变。
我只是想在/usr/share/elasticsearch
下创建一个backup
文件夹。创建好后更改的权限:
COPY ./backup.sh .
RUN ["chmod", "+x", "./backup.sh"]
CMD ["./backup.sh"]
其中backup.sh
文件内容是:
mkdir backup
chown -R elasticsearch:elasticsearch ./backup
backup
文件夹/usr/share/elasticsearch
下创建的,不过,它的权限不变:
#docker exec -it es ls -la /usr/share/elasticsearch
drwxr-xr-x. 1 root root 4096 Jan 16 12:11 .
drwxr-xr-x. 1 root root 4096 Aug 31 17:30 ..
drwxr-xr-x. 2 >>>>root<<<< >>>>root<<<< 4096 Jan 16 12:03 backup <<<<<<<<<<<<<<<<<
-rwxr-xr-x. 1 root root 58 Jan 16 12:02 backup.sh
drwxr-xr-x. 2 root root 4096 Jan 16 12:11 bin
drwxr-xr-x. 3 elasticsearch elasticsearch 4096 Jan 16 12:11 config
drwxr-xr-x. 3 elasticsearch elasticsearch 4096 Jan 16 12:11 data
drwxr-xr-x. 2 root root 4096 Jan 16 12:11 lib
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 Aug 31 17:30 logs
drwxr-xr-x. 5 root root 4096 Jan 16 12:11 modules
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 Aug 29 09:24 plugins
任何想法?
编辑
Dockerfile:
FROM elasticsearch:2.4
COPY ./backup.sh .
RUN ["chmod", "+x", "./backup.sh"]
CMD ["./backup.sh"]
VOLUME /usr/share/elasticsearch/backup
backup.sh:
mkdir backup
chown -R elasticsearch:elasticsearch ./backup
EDIT2
我刚刚拿到了这个想法从official elasticsearch:2.4 dockerfile。我提出的片段:
WORKDIR /usr/share/elasticsearch
RUN set -ex \
&& for path in \
./data \
./logs \
./config \
./config/scripts \
; do \
mkdir -p "$path"; \
chown -R elasticsearch:elasticsearch "$path"; \
done
VOLUME /usr/share/elasticsearch/data
我也试过这样:
WORKDIR /usr/share/elasticsearch
RUN set -ex \
&& for path in \
./backup \
; do \
mkdir -p "$path"; \
chown -R elasticsearch:elasticsearch "$path"; \
done
VOLUME /usr/share/elasticsearch/backup
然而,backup
被分配到root:root
代替elasticsearch:elasticsearch
:
#docker exec -it es ls -la /usr/share/elasticsearch
drwxr-xr-x. 10 root root 4096 Jan 17 08:02 .
drwxr-xr-x. 51 root root 4096 Aug 31 17:30 ..
drwxr-xr-x. 2 root root 4096 Jan 17 08:06 backup <<<<<<<<<<<<
drwxr-xr-x. 2 root root 4096 Jan 17 08:08 bin
drwxr-xr-x. 3 elasticsearch elasticsearch 4096 Jan 17 08:08 config
drwxr-xr-x. 3 elasticsearch elasticsearch 4096 Jan 17 08:08 data
drwxr-xr-x. 2 root root 4096 Jan 17 08:08 lib
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 Aug 31 17:30 logs
drwxr-xr-x. 5 root root 4096 Jan 17 08:08 modules
drwxr-xr-x. 2 elasticsearch elasticsearch 4096 Aug 29 09:24 plugins
你能否提供一个示例Dockerfile +上下文来重新创建问题? – minamijoyo
我刚刚添加了完整的Dokcerfile和backup.sh文件。 – Jordi