月度归档: 2018 年 5 月

  • ECS之Ubuntu上使用docker部署Jenkins持续集成支持dnmp

    第一步,创建容器:

    docker run -u root -p 8080:8080 -p 50000:50000 -v /root/docker:/var/jenkins_home –name j02 -idt jenkins

    解释:

    1. 注意这里以root用户启动,如果使用默认用户jenkins则不需要加-u,但是可能会造成与dnmp之间的文件读写权限有麻烦。
    2. 与宿主机的共享目录设置为/root/docker,这个随便,其实放哪里都行,放这里为了登录进去以后方便找。
    3. –name叫j02这个随便,是生成的docker的镜像名,开始那个叫j01,后来改root权限启动我改成了j02,无所谓。
    4. 端口绑定的是8080
    执行命令docker logs -f j02查看容器的控制台日志,看到如下信息表示jenkins服务启动成功:
    Dec 31, 2017 6:29:24 AM jenkins.install.SetupWizard init
    INFO:
    *************************************************************
    *************************************************************
    *************************************************************
    Jenkins initial setup is required. An admin user has been created and a password generated.
    Please use the following password to proceed to installation:
    f0f2e35d549f49b486b0ca2bdf3756d6
    This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
    *************************************************************
    *************************************************************
    *************************************************************
    Dec 31, 2017 6:29:29 AM hudson.model.UpdateSite updateData
    INFO: Obtained the latest update center data file for UpdateSource default
    Dec 31, 2017 6:29:30 AM hudson.model.DownloadService$Downloadable load
    INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
    Dec 31, 2017 6:29:30 AM hudson.model.UpdateSite updateData
    INFO: Obtained the latest update center data file for UpdateSource default
    Dec 31, 2017 6:29:30 AM hudson.WebAppMain$3 run
    INFO: Jenkins is fully up and running
    –> setting agent port for jnlp
    –> setting agent port for jnlp… done
    Dec 31, 2017 6:29:33 AM hudson.model.DownloadService$Downloadable load
    INFO: Obtained the updated data file for hudson.tools.JDKInstaller
    Dec 31, 2017 6:29:33 AM hudson.model.AsyncPeriodicWork$1 run
    INFO: Finished Download metadata. 11,856 ms
    1
    2
    3
    打开浏览器查看IP:8080就见到jenkins的页面了,但需要输入上面那个日志中的initialAdminPassword才能开始。从上面日志复制,或者cat /root/docker/secrets/initialAdminPassword
    点击左边按建议配置安装。
    设置用户名密码。
    参考文章:https://blog.csdn.net/boling_cavalry/article/details/78942408(它是为java弄的,如果只是php和node项目,不需要maven插件)
    进入容器:
    docker exec -it j02 /bin/bash
    因为我们用的是root权限,而jenkins默认是jenkins用户,所以进来第一步创建ssh秘钥之前需要改一下.ssh目录的链接,使用:
    ln -s /var/jenkins_home/.ssh /root/.ssh
    执行以下命令产生SSH证书:
    ssh-keygen -t rsa -C “abcdef@gmail.com”
    会出现几个询问,直接按回车键继续。
    执行以下命令配置全局用户信息的账号:
    git config –global user.name”abcdef”
    1
    执行以下命令配置全局用户信息的邮箱:
    git config –global user.email abcdef@gmail.com
    1
    公钥被存储到以下位置,打开复制所有内容,然后登录git,添加到SSH keys中:
    /var/jenkins_home/.ssh/id_rsa.pub,也就是宿主机的/root/docker/.ssh/id_rsa.pub。
    执行exit,退出容器,以下命令查看。
    cat /root/docker/.ssh/id_rsa
    将其贴到github账户的setting中。
    打开jenkins页面,新建项目,构建一个自由风格的项目。
    源码管理选择git,输入源的地址:git@github.com:bianjibang/dp-api.git
    Credentials那里点add,添加provider,选择ssh username with private key,然后private key来自第三个选项From the Jenkins master ~/.ssh。
    就添加成功了。
    回到项目设置页面在Credentials那里点刷新就看到新增的授权了,选择的时候可能需要点两次才能选上。
    构建触发器那里选GitHub hook trigger for GITScm polling,即当github收到posh的时候自动拉取。
    构建那里选择execute shell,可以放入想要在完成时执行的后续命令。比如
    cp -r $WORKSPACE/* $JENKINS_HOME/dnmp/www/dp/api
    点击立即构建,可以看到新增的build history,点击某个history, 进入Console Output可以看到执行日志,通过其内容可以修正命令。
    接下来,在宿主机/root/docker下面
    git clone git@github.com:yeszao/dnmp.git(建议首先fork到自己账户下,clone自己的,这样以后修改配置比较方便)
  • 期待产品原型、UI设计与开发统一版本管理工具

    目前产品原型到UI设计,再到开发测试上线,是分离的,目前尚未发现有一统天下的工具和平台。

    我倒是非常渴望有这么一个工具,尤其对于小团队而言。具体的需求就是将产品原型、UI设计、开发测试三者的版本管理集中在一起,每个阶段的某个版本有若干状态,如设计中/已推送/已交付/已验收。墨刀实现了产品经理与UI设计之间的协同,如果再能与开发协同一下则更棒。

    对一个项目而言,有这么几个部分,页面树、工作流、页面。页面是基本元素,页面数上可以标注该页面存在的生命周期,如从v1到v4,或者从v3到v5,并且设定发布的url,可以包括测试版地址和发布版地址,工具根据url自动快照,获取当前版本,并通过图像识别对比差异,只保留变更的版本,存入版本库。而产品原型和UI设计的版本分别由产品经理和UI设计师标注和提交。查看时,可以查看最新版,也可以专门查看某一版本的执行情况。