Docker 制作 nginx-node 镜像


共计 1085 个字符,预计需要花费 3 分钟才能阅读完成。

最近准备给 transfer.zip 项目制作一个 dockerfile,把两个项目打包到一个 docker 镜像,并强制使用 https,因为它的使用必须 https 环境,当然这是后话。

根据两个项目的 dockerfile 得知,一个是静态前端页面,需要 nginx,另外一个需要 node 环境,所以需要先将 nginx-node 的镜像给弄出来。

这里提供两个 dockerfile,其中有一个版本是 alpine 基础镜像,整体打包出来的镜像会小很多。

普通版本的 dockerfile:

FROM nginx

# 安装必要的软件包并清理缓存
RUN apt-get update && \
    apt-get install -y --no-install-recommends ca-certificates curl gnupg && \
    rm -rf /var/lib/apt/lists/*

# 下载并导入 Nodesource GPG 密钥
RUN mkdir -p /etc/apt/keyrings && \
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

# 创建 deb 仓库
ARG NODE_MAJOR=20
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_MAJOR}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list

# 更新软件包并安装 Node.js,然后清理缓存
RUN apt-get update && \
    apt-get install -y --no-install-recommends nodejs && \
    rm -rf /var/lib/apt/lists/*

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

制作的镜像已推送到 dockerhub,地址是 hausen1012/nginx-node,有需要可以自行拉取。

alpine 版本的 dockerfile:

FROM nginx:alpine

# 安装 Node.js
RUN apk update && \
    apk add --no-cache nodejs npm

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

镜像已推送到也已经推送,地址是 hausen1012/nginx-node:alpine

提醒:本文发布于392天前,文中所关联的信息可能已发生改变,请知悉!

Tips:清朝云网络工作室

阅读剩余
THE END