更新时间:2023-10-19 GMT+08:00
使用Node.js构建包制作Docker镜像
目标
本文旨在帮助用户了解如何使用软件开发生产线编译构建服务打包Node.js项目及制作构建包的Docker镜像。
前提准备
了解Docker的基本概念、环境安装和基本操作,关于如何在各个操作系统平台安装docker,请参考Docker官方文档。
如果是初次使用编译构建服务,请先新建项目,然后开始本示例。
- 在本地创建一个用于存放代码的目录“nodesource”并进入该目录。
- 在“nodesource”目录新建名称为“package.json”的文件,内容如下:
{ "name": "docker_web_app", "version": "1.0.0", "description": "Node.js on Docker", "author": "First Last <first.last@example.com>", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.16.1" } }
- 新建名为“server.js”的文件,内容如下:
'use strict'; const express =require('express'); // Constants const PORT=8080; const HOST='0.0.0.0'; // App const app =express(); app.get('/',(req, res)=>{ res.send('Hello world\n'); }); app.listen(PORT,HOST); console.log(`Running on http://${HOST}:${PORT}`);
- 本地验证。代码准备好后,可以在本地先编译,然后将项目运行起来,看结果是否正常。
- 在“nodesource”目录下,新建“Dockerfile”文件,内容如下:
#use the latest LTS (long term support) version 12 of node available from the Docker Hub FROM node:12 # Create app directory WORKDIR /usr/src/app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # where available (npm@6+) COPY package*.json ./ RUN npm install # If you are building your code for production # RUN npm ci --only=production # Bundle app source COPY . . EXPOSE 8080 CMD ["node","server.js"]
- 新建“.dockerignore”文件,内容如下:
node_modules npm-debug.log
- 上传代码至代码托管服务。
在导航栏选择创建代码仓库创建名为“nodesource”的代码仓库,然后上传代码至代码仓库,代码上传完后,可进入代码仓库查看内容。
,参考
打包并制作、推送镜像
查看并验证构建结果
- 在导航栏选择 ,查看上传的软件包,名称与构建任务名称一致。
- 获取镜像下载指令并将镜像设置为公开镜像。
- 进入容器镜像服务SWR,单击左侧导航栏“我的镜像”,搜索并单击刚制作好的“nodestudy”镜像。
- 进入镜像详情页,单击“下载指令”列的
,获取完整的镜像下载指令(docker pull + 镜像地址)。
- 选中镜像版本“v1.1.0”,单击右上角的“编辑”,在弹框中选择“公开”,然后单击“确定”。
- 进入容器镜像服务SWR,单击左侧导航栏“我的镜像”,搜索并单击刚制作好的“nodestudy”镜像。
- 验证镜像。
父主题: 图形化构建