我有一个用于构建控制台应用程序的dockerfile。在dockerfile中运行发布逗号之后,我可以看到使用RUN ls-la的输出文件夹。我的问题是如何导出或解压生成用于查看本地机器上文件的输出文件夹(在本例中是app/out)?
Dockerfile
FROM mcr.microsoft.com/dotnet/sdk:6.0 as build
WORKDIR /app
COPY . .
RUN dotnet --info
RUN dotnet restore ./MyProject.csproj
RUN ls -la
RUN dotnet publish ./MyProject.csp
如何在Dockerfile中的划痕容器中创建空文件?
尝试1
显然,touch是不可用的:
FROM scratch
RUN ["touch", ".emptyfile"]
结果:
container_linux.go:265: starting container process caused "exec: \"touch\": executable file not found in $PATH"
尝试2
不幸的是,/dev/null也不可用:
FROM scratch
COPY /dev/null .emptyfile
结
Dockerfile有没有可能从主机文件系统复制一些文件,而不是从构建它的上下文复制?
# Inside Dockerfile
FROM gradle:latest
COPY ~/.super/secrets.yaml /opt
# I think you can work around it with but doesn't look nice
COPY ../../../../../../.super/secrets.yaml /opt
当我在/home/user/some/path/to/project/路径上运行命令时?
docker build .
在Dockerfile中运行javac有问题:
Dockerfile:
FROM jboss/wildfly
RUN javac ../src/Hello.java
RUN java -cp ../src Hello
Hello.java
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello, World");
}
}
当我构建Dockerfile时,会出现以下错误:
文件找不到:./src/hello.java
我刚开始使用docker,当我尝试运行下一条评论时,我用dockerfile创建了一个容器: docker run --name ai --rm -it -v /C/AI_project/:/AI_project project:latest bash 它会创建容器,但带有空的AI_project文件夹。我多次尝试编辑这一行,但从未复制过该文件夹。如何将本地主机的文件夹添加到容器中? here my result
我正在尝试使用Dockerfile和docker-compose.yml文件运行docker-compose build命令。 在docker-compose.yml文件中,我尝试将主机./dist上的本地文件夹与容器app/dist上的文件夹绑定。 version: '3.8'
services:
dev:
build:
context: .
volumes:
- ./dist:app/dist # I'm expecting files to be changed or added to the container
我编写了一个非常简单的dockerfile,但不幸的是,它在dockerfile中执行以下命令时失败了:-
RUN ["cp -r", "node_modules/dir1/test/*", "/app"]
以下是我收到的错误信息:-
OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"cp -r\": executable file not found in $PATH": un