在前缀为COPY example.jar /app
的目录中,有一个example.jar文件和一个Dockerfile,在Dockerfile中,有以下语句:
docker build -t image_name ./
我跑步
COPY failed: stat /var/lib/docker/tmp/docker-builder457658077/example.jar: no such file or directory
然后出现以下错误:
COPY
为什么/home/gitlab-runner/builds/
不能在带有前缀/var/lib/docker..
的目录中找到example.jar?奇怪的 [root@koala 53bdd1747e3590f90fcc84ef4963d4885711e25f]# pwd
/home/gitlab-runner/builds/pica/eureka/53bdd1747e3590f90fcc84ef4963d4885711e25f
[root@koala 53bdd1747e3590f90fcc84ef4963d4885711e25f]# ls -al
total 52068
drwxrwxr-x 5 gitlab-runner gitlab-runner 4096 Dec 11 15:23 .
drwxrwxr-x 4 gitlab-runner gitlab-runner 4096 Dec 11 11:35 ..
-rw-rw-r-- 1 gitlab-runner gitlab-runner 17 Dec 11 11:35 APPLICATION_VERSION
-rw-rw-r-- 1 gitlab-runner gitlab-runner 644 Dec 11 11:35 docker-compose.yml
-rw-rw-r-- 1 gitlab-runner gitlab-runner 568 Dec 11 15:23 Dockerfile
drwxrwxr-x 8 gitlab-runner gitlab-runner 4096 Dec 11 11:35 .git
-rw-rw-r-- 1 gitlab-runner gitlab-runner 322 Dec 11 11:35 .gitignore
-rw-rw-r-- 1 gitlab-runner gitlab-runner 2438 Dec 11 11:35 .gitlab-ci.yml
-rw-rw-r-- 1 gitlab-runner gitlab-runner 53271183 Dec 11 11:35 example.jar
-rw-rw-r-- 1 gitlab-runner gitlab-runner 1043 Dec 11 11:35 pom.xml
drwxrwxr-x 4 gitlab-runner gitlab-runner 4096 Dec 11 11:35 src
drwxrwxr-x 8 gitlab-runner gitlab-runner 4096 Dec 11 11:35 target
路径如何跳入?该如何处理?谢谢!
library(caret)
library(randomForest)
library(foreach)
library(doParallel)
#very small database example
db <-
data.frame(Y = as.factor(sample(c(0, 1), 1000, replace = T)),
X1 = sample(c(100:2000), 1000, replace = T),
X2=sample(c(100:2000), 1000, replace = T),
X3 = sample(c(100:2000), 1000, replace = T),
X4 = sample(c(100:2000), 1000, replace = T))
#bootstrap 100 times
times <- 100
set.seed(5)
#create 1000 resample indexes
res <- createResample(db$Y,times = times)
db_list <- list()
#list of database resampled
for (i in 1:times) {
db_list[[i]] <- db[res[[i]],]
}
#create 100 models from the db_list and make prediction
model_list <- list()
pred <- data.frame(Y=rep(NA,nrow(db)))
#on my machin this loop take 28.10 sec elapsed
system.time(for (l in seq_len(times)) {
set.seed(5)
model_list[[l]] <- randomForest(Y~.,data=db_list[[l]])
pred[,l] <- predict(model_list[[l]],newdata = db[,-1])#predict from the original Xn variables
db_pred <- db
db_pred <- cbind(db_pred,pred)
})
#make cluster with 11 core in my machine
cl <- makeCluster(detectCores()-1)
registerDoParallel(cl)
#on my machin this loop take 23.25 sec elapsed
system.time(foreach(l = seq_len(times),.packages = "randomForest")%dopar% {
set.seed(5)
model_list[[l]] <- randomForest(Y~.,data=db_list[[l]])
pred[,l] <- predict(model_list[[l]],newdata = db[,-1])#predict from the original Xn variables
db_pred <- db
db_pred <- cbind(db_pred,pred)
})
stopCluster(cl)
答案 0 :(得分:2)
[从服务器故障中复制了我的答案,没有意识到这个问题是交叉发布的]
COPY example.jar /app
此命令期望在构建上下文的根中有一个example.jar
。构建上下文是docker build
(在本例中为.
)或当前目录的最后一个参数。从ls -al
输出中,您没有将此jar文件归档到目录中,而docker告诉您COPY命令在构建上下文中找不到example.jar。如果它在其他子目录之一中,则需要使用该位置更新COPY命令。
要调试构建上下文的问题,可以构建并运行以下Dockerfile:
FROM busybox
COPY . /build-context
WORKDIR /build-context
CMD find .
这会将整个构建上下文复制到映像中,并在运行容器时使用find命令列出内容。