NodeJS项目build成为本地镜像上传阿里云ACR

发布时间 2023-12-11 09:22:26作者: 老胡Andy

先注册阿里云账号
选择“容器镜像服务” -> “个人实例”。由于是测试目的,个人版也可以接受。

创建命名空间

创建镜像仓库

选择本地仓库 - 本示例会从本机推送镜像

创建成功后,会有提示相关命令

创建一个nodejs项目
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.18.2"
    }
}

server.js

'use strict';
const express = require('express');

const PORT = 8080;
const HOST = '0.0.0.0';

const app = express();

app.get('/', (req, res) => {
    res.send('Hello World');
});

app.listen(PORT, HOST, () => {
    console.log(`Running on http://${HOST}:${PORT}`);
});

npm install

新建Dockerfile

FROM node:14

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install --registry=https://registry.npm.taobao.org   /*如果网络不好,可以增加registry参数*/

COPY . .

EXPOSE 8080

CMD [ "node", "server.js" ]

.dockerignore

node_modules
npm-debug.log

家里网络差的可以设置npm代理
npm config set registry https://registry.npm.taobao.org

npm install -g cnpm --registry=https://registry.npm.taobao.org

执行以下命令,-t 代表tag,最后的点(.)不要漏掉。 可能需要以管理员身份运行cmd
docker build -t andy1982/nodejs_app:1.0.0 .

docker images,可以看到刚才build出的image

登录ACR,输入密码
docker login --username=aliyun3961843692 registry.cn-shanghai.aliyuncs.com

为刚才build出的image打标签
docker tag 07e9097c39d4 registry.cn-shanghai.aliyuncs.com/andy1982/demo2023:1.0.0

push到ACR
docker push registry.cn-shanghai.aliyuncs.com/andy1982/demo2023:1.0.0

登录ACR查看
https://cr.console.aliyun.com/cn-shanghai/instance/repositories

参考:
https://blog.csdn.net/qyfx123456/article/details/132353051
https://mkabdelrahman.github.io/posts/k8s-pods/