docker - scripts not executing in jenkins in docker
问题描述
I am setting up docker for jenkins and installing plugins in it.For this execution there are few lines as below in Dockerfile:
COPY plugins.sh /usr/local/bin/plugins.sh
# Adding required plugins
COPY plugins.txt /plugins.txt
RUN cd /usr/local/bin && ls -al && echo 'Hello'
RUN /usr/local/bin/plugins.sh /plugins.txt
it is giving output as:
Step 64/73 : RUN cd /usr/local/bin && ls -al && echo 'Hello'
---> Running in 99b837dbd42c
total 53068
drwxr-xr-x 1 root root 4096 Jun 14 12:06 .
drwxr-xr-x 1 root root 4096 Jan 9 19:37 ..
-rwxr-xr-x 1 root root 87 Jun 6 01:55 docker-java-home
-rw-rw-r-- 1 root root 5000 Jun 11 07:00 jenkins-support
-rw-rw-r-- 1 root root 1301 Jun 11 07:00 jenkins.sh
-rwxrwxrwx 1 root root 54308597 Jun 6 10:56 kubectl
-rw-rw-r-- 1 root root 3917 Jun 11 07:00 plugins.sh
Hello
Removing intermediate container 99b837dbd42c
---> bfa6a11b18da
Step 65/73 : RUN /usr/local/bin/plugins.sh /plugins.txt
---> Running in fd2f5cf8de36
/bin/sh: /usr/local/bin/plugins.sh: Permission denied
It is evident that permission is not there for executing the script so,I have added this too in second line:
COPY plugins.sh /usr/local/bin/plugins.sh
RUN chmod +x /usr/local/bin/plugins.sh
# Adding required plugins
COPY plugins.txt /plugins.txt
RUN cd /usr/local/bin && ls -al && echo 'Hello'
RUN /usr/local/bin/plugins.sh /plugins.txt
It is again giving me error as:
Step 63/74 : RUN chmod +x /usr/local/bin/plugins.sh
---> Running in 375d0c56e9c3
chmod: changing permissions of '/usr/local/bin/plugins.sh': Operation not permitted
The command '/bin/sh -c chmod +x /usr/local/bin/plugins.sh' returned a non-zero code: 1
解决方案
这是一个小错误,但它给了一个重要的教训:
在执行 Dockerfile 时,对于我们从本地复制到 docker 容器的所有文件,权限将始终保持不变并且无法更改。
主机上的权限:
-rw-rw-r-- 1 sevenos sevenos 1301 Jun 11 12:30 jenkins.sh
-rw-rw-r-- 1 sevenos sevenos 3917 Jun 11 12:30 plugins.sh
-rw-rw-r-- 1 sevenos sevenos 806 Jun 11 12:30 plugins.txt
Docker 中的权限:
Step 64/73 : RUN cd /usr/local/bin && ls -al && echo 'Hi'
---> Running in 71c1dff30ffc
total 53068
drwxr-xr-x 1 root root 4096 Jun 14 12:06 .
drwxr-xr-x 1 root root 4096 Jan 9 19:37 ..
-rwxr-xr-x 1 root root 87 Jun 6 01:55 docker-java-home
-rw-rw-r-- 1 root root 5000 Jun 11 07:00 jenkins-support
-rw-rw-r-- 1 root root 1301 Jun 11 07:00 jenkins.sh
-rwxrwxrwx 1 root root 54308597 Jun 6 10:56 kubectl
-rw-rw-r-- 1 root root 3917 Jun 11 07:00 plugins.sh
推荐阅读
- azure - 从“Get-AzureRmEventHubKey”命令 power-shell 中提取 event-hub Microsoft-azure 的主键
- python - Python:_on_keyboard_down 函数传递值奇怪的字符,如 ā,Ă,ą
- c# - 无法从管理员进程下运行的进程获取 Windows 消息
- swift - 将部分数组填充到 UITableview 部分
- r - 有没有办法从 dplyr 中的多列中的数据形成组?
- python - 从 Django 项目实现对外部 API 的异步请求?
- android - Android RxJava2 retryWhen使用不编译
- sql - SQL 命令中的 LIKE 未按预期工作?
- ios - Alamofire - 错误的请求
- gremlin - 使用和/或的多个过滤器的 TinkerPop 问题