跳到主要内容

Dockerfile构建Docusaurus网站镜像

编写Dockerfile

项目文件:

  • build 是 Docusaurus 项目下运行 npm run build 生成的网站源文件
  • Dockerfile 是需要编写的文件
项目目录
/mnt/d/项目/Dockerfile/www.zxzsk.com ❯ ls -F
build/ Dockerfile*
Dockerfile
/mnt/d/项目/Dockerfile/www.zxzsk.com ❯ cat Dockerfile 
# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:latest

# 设置元数据(可选)
LABEL maintainer="soulio@zxzsk.com"

# 删除默认的 Nginx 欢迎页面
RUN rm /usr/share/nginx/html/index.html

# 将本地的静态文件复制到 Nginx 的默认网站目录
COPY ./build /usr/share/nginx/html

# 暴露 80 端口
EXPOSE 80

# 启动 Nginx
CMD ["nginx", "-g", "daemon off;"]

构建镜像

# 开始构建
/mnt/d/项目/Dockerfile/www.zxzsk.com ❯ docker build -t www-zxzsk-com:25-02-25 .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/

Sending build context to Docker daemon 39.5MB
Step 1/6 : FROM nginx:latest
---> a72860cb95fd
Step 2/6 : LABEL maintainer="soulio@zxzsk.com"
---> Running in 8b7da65f7734
Removing intermediate container 8b7da65f7734
---> a1ef06b118b3
Step 3/6 : RUN rm /usr/share/nginx/html/index.html
---> Running in ade35f8f3d27
Removing intermediate container ade35f8f3d27
---> 2e476e96e329
Step 4/6 : COPY ./build /usr/share/nginx/html
---> ecd1b985732e
Step 5/6 : EXPOSE 80
---> Running in 44d63f53a8e0
Removing intermediate container 44d63f53a8e0
---> 5e59914717e7
Step 6/6 : CMD ["nginx", "-g", "daemon off;"]
---> Running in 5ca34fff9cb2
Removing intermediate container 5ca34fff9cb2
---> b6a5f9e02929
Successfully built b6a5f9e02929
Successfully tagged www-zxzsk-com:25-02-25


# 完成构建
/mnt/d/项/Dockerfile/www.zxzsk.com ❯ docker images 15s
REPOSITORY TAG IMAGE ID CREATED SIZE
www-zxzsk-com 25-02-25 b6a5f9e02929 6 seconds ago 226MB

部署容器

# 部署容器
/mnt/d/项目/Dockerfile/www.zxzsk.com ❯ docker run -d -p 8000:80 --restart always --name www-zxzsk-com www-zxzsk-com:25-02-25
2aa203abc733b3d1390b882403358d0c7f052fa70eca4b25e698ba6cf21a1f0f

# 查看容器
/mnt/d/项目/Dockerfile/www.zxzsk.com ❯ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aa203abc733 www-zxzsk-com:25-02-25 "/docker-entrypoint.…" 5 seconds ago Up 3 seconds 0.0.0.0:8000->80/tcp, :::8000->80/tcp www-zxzsk-com

我们的容器是一个网站,所以在浏览器中访问:

image-20250225225354925