一分钟开始持续集成之旅系列之:Node + Express 应用
介绍
目的
通过 Coding 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
构建过程
创建项目

将 https://e.coding.net/coding-public/coding-ci-express/coding-ci-express.git 的代码 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
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号