如何使用 dockerfile 创建 index.html?
How to create index.html using dockerfile?
我正在尝试使用 nginx 创建一个简单的静态网站,并希望所有内容都由 Dockerfile 创建,问题是每当我尝试创建一个 index.html 文件时,它都会出现错误,我甚至试图测试它和它与“index.htm”一起工作,但没有使用正确的格式。
FROM centos:7
#update and install nginx section
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y nginx
#create path and add index.html
WORKDIR /usr/share/nginx/html
#this one working with no issue
RUN touch index.htm
#this one will get failed
RUN touch index.html
EXPOSE 80/tcp
CMD ["nginx", "-g", "daemon off;"]
这是错误输出:
majid@DESKTOP-39CBKO0:~/nginx_simple_web$ docker build -t simple-web:v1 .
[+] Building 3.8s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 381B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/centos:7 3.4s
=> [auth] library/centos:pull token for registry-1.docker.io 0.0s
=> [1/7] FROM docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630 0.0s
=> CACHED [2/7] RUN yum update -y 0.0s
=> CACHED [3/7] RUN yum install -y epel-release 0.0s
=> CACHED [4/7] RUN yum install -y nginx 0.0s
=> CACHED [5/7] WORKDIR /usr/share/nginx/html 0.0s
=> CACHED [6/7] RUN touch index.htm 0.0s
=> ERROR [7/7] RUN touch index.html 0.4s
------
> [7/7] RUN touch index.html:
#11 0.357 touch: cannot touch 'index.html': No such file or directory
------
executor failed running [/bin/sh -c touch index.html]: exit code: 1
majid@DESKTOP-39CBKO0:~/nginx_simple_web$
你应该创建一个文件,你可以使用
COPY index.html index.html
构建时将命令复制到 Dockerfile 中以将文件复制到映像中
或使用
echo " " > index.html
command to create a file
您可以使用 echo
创建一个新文件:
RUN echo " " > index.htm
该文件已存在且归 root 所有:
RUN ls -al index.html
---> Running in 27f9d0ae6240
lrwxrwxrwx 1 root root 25 Dec 23 12:08 index.html
-> ../../doc/HTML/index.html
删除并重新创建它:
FROM centos:7
#update and install nginx section
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y nginx
RUN yum install -y vim
#create path and add index.html
WORKDIR /usr/share/nginx/html
RUN rm index.html
RUN touch index.html
EXPOSE 80/tcp
CMD ["nginx", "-g", "daemon off;"]
请注意,一般来说,您应该将多个 RUN
命令组合在一起。
在您的 Dockerfile 中,您可以像在命令行中一样使用 RUN {command}
。
RUN mkdir -p /home/foo/
RUN echo "Hello World" > /home/foo/index.html
我正在尝试使用 nginx 创建一个简单的静态网站,并希望所有内容都由 Dockerfile 创建,问题是每当我尝试创建一个 index.html 文件时,它都会出现错误,我甚至试图测试它和它与“index.htm”一起工作,但没有使用正确的格式。
FROM centos:7
#update and install nginx section
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y nginx
#create path and add index.html
WORKDIR /usr/share/nginx/html
#this one working with no issue
RUN touch index.htm
#this one will get failed
RUN touch index.html
EXPOSE 80/tcp
CMD ["nginx", "-g", "daemon off;"]
这是错误输出:
majid@DESKTOP-39CBKO0:~/nginx_simple_web$ docker build -t simple-web:v1 .
[+] Building 3.8s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 381B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/centos:7 3.4s
=> [auth] library/centos:pull token for registry-1.docker.io 0.0s
=> [1/7] FROM docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630 0.0s
=> CACHED [2/7] RUN yum update -y 0.0s
=> CACHED [3/7] RUN yum install -y epel-release 0.0s
=> CACHED [4/7] RUN yum install -y nginx 0.0s
=> CACHED [5/7] WORKDIR /usr/share/nginx/html 0.0s
=> CACHED [6/7] RUN touch index.htm 0.0s
=> ERROR [7/7] RUN touch index.html 0.4s
------
> [7/7] RUN touch index.html:
#11 0.357 touch: cannot touch 'index.html': No such file or directory
------
executor failed running [/bin/sh -c touch index.html]: exit code: 1
majid@DESKTOP-39CBKO0:~/nginx_simple_web$
你应该创建一个文件,你可以使用
COPY index.html index.html
构建时将命令复制到 Dockerfile 中以将文件复制到映像中
或使用
echo " " > index.html command to create a file
您可以使用 echo
创建一个新文件:
RUN echo " " > index.htm
该文件已存在且归 root 所有:
RUN ls -al index.html
---> Running in 27f9d0ae6240
lrwxrwxrwx 1 root root 25 Dec 23 12:08 index.html
-> ../../doc/HTML/index.html
删除并重新创建它:
FROM centos:7
#update and install nginx section
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y nginx
RUN yum install -y vim
#create path and add index.html
WORKDIR /usr/share/nginx/html
RUN rm index.html
RUN touch index.html
EXPOSE 80/tcp
CMD ["nginx", "-g", "daemon off;"]
请注意,一般来说,您应该将多个 RUN
命令组合在一起。
在您的 Dockerfile 中,您可以像在命令行中一样使用 RUN {command}
。
RUN mkdir -p /home/foo/
RUN echo "Hello World" > /home/foo/index.html