这很简单,但我没有解释为什么这不起作用:
在我的Dockerfile中:
highlightElement = function(locator){
console.log("highlight--");
console.log("locator---:"+locator);
var ele = browser.driver.findElement(locator);
return browser.driver.executeScript("arguments[0].setAttribute('style', arguments[1]);",ele, "color: Red; border: 2px solid red;").
then(function(resp){
browser.sleep(2000);
return ele;
},function(err){
console.log("error is :"+err);
});
};
构建并运行后,容器内的文件仍然存在:
RUN rm -rf /etc/nginx/sites-*/*
我可以在构建中看到操作已完成:
ls -lrth /etc/nginx/sites-*/*
-rw-r--r-- 1 root root 2.1K Jan 26 23:34 /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root 34 Apr 21 15:58 /etc/nginx/sites-enabled/default -> /etc/nginx/sites-available/default
-rw-r--r-- 1 root root 691 Apr 21 16:12 /etc/nginx/sites-available/default.conf
lrwxrwxrwx 1 root root 39 Apr 21 16:17 /etc/nginx/sites-enabled/default.conf -> /etc/nginx/sites-available/default.conf
这是我的Dockerfile:
Step 13 : RUN rm -rf /etc/nginx/sites-*/*
---> Running in 0fa2deabe45c
---> 33e7b85a6c05
答案 0 :(得分:0)
这似乎对我有用。
我首先在本地设置Dockerfile:
$ mkdir dockertest
$ cd dockertest
$ cat > Dockerfile
<paste dockerfile here>
然后构建图像:
$ docker build -t dockertest .
您可以看到完整的构建过程here。
构建映像后,我可以验证这些目录是否为空:
bash-4.3$ docker run --rm dockertest ls -l /etc/nginx/sites-{available,enabled}/
/etc/nginx/sites-available/:
total 0
/etc/nginx/sites-enabled/:
total 0
bash-4.3$
您注意到我在上一个命令中没有使用通配符。如果我改为运行...
$ docker run --rm dockertest ls -l /etc/nginx/sites-*/*
...会在我的主机文件系统上列出文件,因为在命令运行之前发生了 shell通配符扩展。您可以通过运行安全地执行此操作:
$ docker run --rm dockertest sh -c 'ls -l /etc/nginx/sites-*/*'