Node + Express 应用

通过 COIDNG CI 帮助我们来完成 Node + Typescript + Express 实现一个命令行版本的 “每日一句” 的小工具。希望通过这个小案例,帮助大家快速掌握 CODING CI + Docker 。

源码地址

https://coding-public.coding.net/p/coding-ci-express/d/coding-ci-express/git/

效果展示

图片

项目简介

使用技术

  • Node v12.16.1 + Typescript + Express
  • Docker

目录说明

.
├── .dockerignore
├── .eslintrc.js
├── .gitignore
├── Dockerfile
├── Jenkinsfile
├── package-lock.json
├── package.json
├── readme.md
├── src
│   ├── day.ts
│   └── index.ts
└── tsconfig.json

代码运行

源码运行

git clone https://e.coding.net/coding-public/coding-ci-express/coding-ci-express.git
cd coding-ci-express.git
npm install
npm run dev

curl localhost:3000

Docker 运行

docker run -d -p 3000:3000 asdasdasd

构建过程

创建项目

图片

代码仓库里的代码 Push 到新创建仓库中。

创建构建计划

这里我们使用静态的 Jenkinsfile 和 CODING CI 提供的 Jenkinsfile 模板,帮助我们快速的编写 Jenkinsfile。当然也可以使用代码库中的 Jenkinsfile ,如果我们对于 Jenkinsfile 的编写不是很熟悉的话,使用模板可以帮助我们快速开始。

图片

选择 CODING Docker 镜像推送,修改构建参数。

图片

图片

创建 Docker 制品库

图片

准备 Dockerfile

图片

准备 Jenkinsfile

CODING CI 支持代码库内部的 Jenkinsfile 和静态的 Jenkinsfile,CODING CI 的构建中为我们准备好了很多环境变量,帮助我们编写 Jenkinsfile 。

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([$class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]],
        userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]])
      }
    }
    stage('打包镜像') {
      steps {
        sh "docker build -t ${env.DOCKER_IMAGE_NAME}:${env.CI_BUILD_NUMBER} ."
      }
    }
    stage('推送到制品库') {
      steps {
        script {
          docker.withRegistry("https://${env.CODING_DOCKER_REG_HOST}", "${env.CODING_ARTIFACTS_CREDENTIALS_ID}") {
            docker.image("${env.DOCKER_IMAGE_NAME}:${env.CI_BUILD_NUMBER}").push()
          }
        }

      }
    }
  }
  environment {
    CODING_DOCKER_REG_HOST = "${env.CCI_CURRENT_TEAM}-docker.pkg.${env.CCI_CURRENT_DOMAIN}"
    DOCKER_IMAGE_NAME = "${env.PROJECT_NAME.toLowerCase()}/${env.DOCKER_REPO_NAME}/hello-world"
  }
}

彩蛋

我们可以将该应用和终端结合使用,这样就可以在每次启动终端的时候就可以看到 “每日一句” 了。

echo "curl localhost:3000" >> ~/.zshrc
or 
echo "curl localhost:3000" >> ~/.bashrc
上一篇Java + Maven + Spring Boot 快速构建并验证代码
文档是否对您有用?
感谢反馈有用
感谢反馈没用