Vla*_*159 20 testing automated-tests docker alpine-linux testcafe
所以我使用了testcafe的默认docker,它在docker hub上是testcafe/testcafe,我必须运行一些testcafe脚本.
但是,我需要将错误触发的屏幕截图上传到我可以在docker镜像运行完毕后查看它的某个地方.
我正在使用使用bash的imgur程序,所以我重新做了一些事情,使它兼容并且一切正常,除了我需要卷曲.我试过跑步
apk add curl
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误
ERROR: Unable to lock database: Permission denied ERROR: Failed to open apk database:
Run Code Online (Sandbox Code Playgroud)
现在我没有这意味着我没有权限这样做但是我可以解决这个问题,有一些方法可以成为root(这是在bitbucket管道中).
我真的不想创建自己的docker.
另请注意我发现的与此相关的所有问题都是关于在创建docker时安装,但我的问题是如何在创建docker之后执行此操作.thx(一个很好的答案是保存屏幕截图的另一种方法,但最好不用ssh).
小智 30
希望这对任何对创建新容器不感兴趣的人有所帮助。
如果您尝试像这样进入您的 docker 容器:
docker exec -it <containername> /bin/sh
相反,试试这个:
docker exec -it --user=root <containername> /bin/sh
pet*_*nek 15
对于 Docker 容器来说很简单:
docker exec -it --user root container-name sh
Run Code Online (Sandbox Code Playgroud)
对于 Kubernetes Pod 来说,情况稍微复杂一些。如果您的映像是使用非 root 用户构建的,并且您无法在集群内使用 root 用户运行 pod,则需要使用以下方法安装软件包:
- 识别 pod 正在使用的用户
- 创建一个新的Dockerfile
- 像这样配置它
FROM pod-image-name:pod-image-tag
USER root
RUN apk update && apk add curl
USER the-original-pod-user
Run Code Online (Sandbox Code Playgroud)
- 然后构建它
docker build -t pod-image-name:pod-image-tag-with-curl .
Run Code Online (Sandbox Code Playgroud)
- 并将集群内部署/pod 的映像从pod-image-name:pod-image-tag更改为pod-image-name:pod-image-tag-with-curl
Pen*_*eng 10
For those seeing this error using a Dockerfile (and coming here via a Google search): add the following line to your Dockerfile:
USER root
Run Code Online (Sandbox Code Playgroud)
小智 10
docker exec -it --user=root {containername} bash
Run Code Online (Sandbox Code Playgroud)
这样我就可以执行 apk-update
对于那些在运行 Jenkins 管道脚本(并通过 Google 搜索到达)时看到此错误的人,请在启动 Docker 映像时使用以下内容:
node('docker') {
docker.image('golang:1.14rc1-alpine3.11').inside(' -u 0') {
sh 'apk add curl'
...
}
}
Run Code Online (Sandbox Code Playgroud)
最好的解决方法是在 docker 构建失败的行USER <youruser> 之后放置。在大多数情况下,USER直接在命令或入口点上方添加该行是安全的。
例如:
FROM python:3.8.0-alpine
RUN addgroup -S app && adduser -S -G app app
RUN apk add --no-cache libmaxminddb postgresql-dev gcc musl-dev
ADD . .
USER app
ENTRYPOINT ["scripts/entrypoint.sh"]
CMD ["scripts/gunicorn.sh"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9663 次 |
| 最近记录: |