Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块
本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务。
Jenkins采用2.5版本
Docker采用1.7.1
代码托管使用的Github官网
系统为IBM Bluemix提供的Cent6.7,服务器地址在美国南加州
1.1 创建一个Freestyle Project, let's say jenkins-docker
1.2 Set workplace to /var/lib/jenkins/jobs/jenkins-docker/workplace
1.3 Add Github address:Git@github.com:sangrealest/Jenkins_Docker_Ansible.git
Dockerfile 很简单,就是拉取最新的Nginx,并将2048游戏添加到Nginx根目录
FROM nginx:latest
MAINTAINER Shanker shanker@yeah.net
ADD 2048-master /usr/share/nginx/html
ADD testfile /root/
EXPOSE 80
1.4 Under Build Triggers, set Poll SCM: H * * * *
1.5 Under Build->Execute shell, use below shell script:
#!/bin/sh
echo '>>> Get old container id'
CID=$(docker ps | grep "jenkins-docker" | awk '{print $1}')
echo $CID
sudo /usr/bin/docker build -t jenkins-docker /var/lib/jenkins/jobs/jenkins-docker/workspace | tee /var/lib/jenkins/jobs/jenkins-docker/workspace/Docker_build_result.log
echo '>>> Stopping old container'
if [ "$CID" != "" ];then
sudo /usr/bin/docker stop $CID
fi
echo '>>> Restarting docker'
sudo service docker restart
sleep 5
echo '>>> Starting new container'
sudo /usr/bin/docker run -p 3000:80 -d jenkins-docker
1.6 配置jenkins用户
因为jenkins service是用jenkins用户启动的,所有要执行docker相关命令需要将jenkins加入到docker group,赋予jenkins sudo without password
sudo usermod -G docker jenkins
visudo, add bellow
jenkins ALL=(ALL:ALL) NOPASSWD: ALL"
然后Build Project, 如果成打开运行Jenkins机器的3000端口会看到2048游戏的界面:
以上的构建是基于计划任务的,每小时的随机分钟内执行一次构建任务(SCM H * * * *),然后懒人还有懒人的做法,就是添加Github webhook功能,当push一个更新的时候自动trigger一次构建。
2.1 在Github个人主页上安装Github Plugin并添加你的Jenkins server的webhook地址:比如我的Jenkins地址是mywebsite.com:8080,这里要写的地址就应该是http://mywebsite.com:8080/github-webhook
2.2 返回jenkins-docker项目首页,点击 Configure, 添加Github的账号密码信息,因为我用的个人仓库,需要使用私钥认证,选择Certificate, 将放在jenkins home/.ssh 下的私钥路径填上:
2.3 Build Triggers 勾上Build when a change is pushed to Github
2.4 这时候可以更新一下Github Project下面的文件并且push一下,看看是否触发了jenkins的构建动作:
如图,我刚push完成,jenkins这边就已经捕捉到并且开始构建新的任务:
我们在Github项目地下echo 一句话到testfile,并且添加到容器的/root下时间是7:49:58,然后我的容器更新后并启动运行的时间是7:50:26,只用了28秒钟就构建成功了!
有了这样的集成,后续我们就可以考虑将Ansible也加进来,做持续部署,当把jenkins pipeline, docker, ansible都集成到一起,就是CI/CD完全集成工作了,或者用Mesos+Marathon+Docker云数据中心的方式来做持续部署。
欢迎补充!
域网内利用GitLab+Jenkins自动生成GitBook并发布(Nginx) http://www.linuxidc.com/Linux/2016-05/131136.htm
Linux+Git+Maven+Jenkins+Neuxs自动化编译环境搭建 http://www.linuxidc.com/Linux/2016-02/128652.htm
在CentOS 7上安装Jenkins http://www.linuxidc.com/Linux/2016-11/137548.htm
CentOS6安装Jenkins http://www.linuxidc.com/Linux/2016-05/131365.htm
使用Jenkins配置Git+Maven的自动化构建 http://www.linuxidc.com/Linux/2016-02/128641.htm
Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 http://www.linuxidc.com/Linux/2015-06/118606.htm
Jenkins的分布式构建及部署——节点 http://www.linuxidc.com/Linux/2015-05/116903.htm
CentOS7下Jenkins 服务器的安装 http://www.linuxidc.com/Linux/2017-02/141119.htm
Jenkins+Gitlab+Sonar代码检查平台搭建 http://www.linuxidc.com/Linux/2017-01/139900.htm
在Fedora 21上搭建Jenkins+SonarQube的Maven项目自动化测试平台 http://www.linuxidc.com/Linux/2017-02/140780.htm
Jenkins 的详细介绍:请点这里
Jenkins 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141642.htm

Touhou Community Reliant Automatic Patcher
Description
Basically, this is an almost-generic, easily expandable and customizable framework to patch Windows applications in memory, specifically tailored towards the translation of Japanese games.
It is mainly developed to facilitate self-updating, multilingual translation of the Touhou Project games on Touhou Patch Center, but can theoretically be used for just about any other patch for these games, without going through that site.
Main features of the base engine
Easy DLL injection of the main engine and plug-ins into the target process.
Full propagation to child processes. This allows the usage of other third-party patches which also use DLL injection, together with thcrap. (Yes, this was developed mainly for vpatch.)
Uses JSON for all patch configuration data, making the patches themselves open-source by design. By recursively merging JSON objects, this gives us...
Patch stacking - apply any number of patches at the same time, sorted by a priority list. Supports wildcard-based blacklisting of files in certain patches through the run configuration.
Automatically adds transparent Unicode filename support via Win32 API wrappers to target processes using the Win32 ANSI functions, without the need for programs like AppLocale.
Patches can support multiple builds and versions of a single program, identified by a combination of SHA-256 hashes and .EXE file sizes.
Binary hacks for arbitrary in-memory modifications of the original program (mostly used for custom assembly).
Breakpoints to call custom DLL functions at any instruction of the original code. These functions can read and modify the current CPU register state.
Multiple sets of sequentially applied binary hacks and breakpoints, for working around EXE packers and DRM schemes.
File breakpoints to replace data files in memory with replacements from patches.
Wildcard-based file format patching hooks called on file replacements - can apply patches to data files according to a (stackable!) JSON description.
Optional Steam integration for games that are available through Steam, but don't come with Steam integration themselves. Can be disabled by deleting
steam_api.dll.... and all that without any significant impact on performance. ☺
Modules included
win32_utf8: A UTF-8 wrapper library around the Win32 API calls we require. This is a stand-alone project and can (and should) be freely used in other applications, too.thcrap: The main patch engine.thcrap_loader: A command-line loader to call the injection functions ofthcrapon a newly created process.thcrap_configure: A rather cheap command-line patch configuration utility. Will eventually be replaced with a GUI tool.thcrap_tsa: A thcrap plug-in containing patch hooks for games using the STG engine by Team Shanghai Alice.thcrap_update: A thcrap plug-in containing updating functionality for patches as well as digitally signed automatic updates of thcrap itself.
Building
A ready-made Visual Studio build configuration, covering all modules and their dependencies, is provided as part of this repository. To set up the build:
Install Visual Studio Community 2013.
Make sure that you've pulled all Git submodules together with this repo:
git clone --recursive https://github.com/thpatch/thcrap.git(Optional) If your thcrap build should be able to automatically update itself, you need to create a code signing certificate. To do this, run the following commands on the Visual Studio command prompt (
vcvarsall.bat) in the root directory of this repo (the one withthcrap.sln):makecert -n "CN=Your Name,E=yourmail@provider.net" -$ individual -a sha256 -len 4096 -r -cy authority -sky signature -pe -sv cert.pvk cert.cer pvk2pfx -pvk cert.pvk -spc cert.cer -pfx cert.pfxcert.pfxis used to sign the binaries as part of the build, so don't change the file name.
Then, open thcrap.sln, choose Debug or Release from the drop-down menu in the toolbar (or the Configuration Manager) and run Build → Build Solution from the main menu.
You can also build from the command line by running the Visual Studio tool environment batch file (vcvarsall.bat), then run
msbuild /m /p:Configuration=Debug
or
msbuild /m /p:Configuration=Release
in the thcrap directory. The binaries will end up in the bin/ subdirectory.
Signing a release archive for automatic updates
First, convert cert.pvk to a .pem file using OpenSSL, then use this file together with scripts/release_sign.py:
openssl rsa -inform pvk -in cert.pvk -outform pem -out cert.pempython release_sign.py -k cert.pem thcrap.zip
Using different compilers
Visual Studio Community 2013 is recommended for building, and the build configuration references the Visual Studio 2013 platform toolset with Windows XP targeting support by default. However, the project should generally build under every version since Visual C++ 2010 Express after changing the <PlatformToolset> value in Base.props. For a list of all platform toolsets available on your system, open the Properties dialog for any included project and refer to the drop-down menu at Configuration Properties → General → Platform Toolset.
Compilation with MinGW is currently not supported. This is not likely to change in the foreseeable future as we don't see much value in it.
Dependencies
All required third-party libraries for the C code are included as Git submodules. These are:
Jansson, required for every module apart from
win32_utf8.libpng (>= 1.6.0), required by
thcrap_tsafor image patching.zlib, required by
thcrap_updatefor CRC32 verification. It's required bylibpnganyway, though.
The scripts in the scripts directory are written in Python 3. Some of them require further third-party libraries not included in this repository:
- PyCrypto is required by
release_sign.py.
License
The Touhou Community Reliant Patcher and all accompanying modules are released to the Public Domain, unless stated otherwise. This means you can do whatever you want with this code without so much as crediting us.
That said, we do appreciate attribution. ☺

Navigation
Last updated at 2017-03-29 05:41:44
Reimu Hakurei
Reimu Hakurei is a playable character in Fantasy Crescendo.
General Information
Home Stage: Hakurei Shrine
Height: 1.5 m
Weight: 1 weight unit
Walk Speed: 5 m/s
Run Speed: 10 m/s
Attacks
Work in Progress This section is a work in progress. A lot of what is presented here is subject to potential future change.
|
Attack |
Description |
Damage |
Knockback |
|
Ground Attacks |
|||
|
Neutral Combo |
TODO |
N/A |
N/A |
|
Strong Attacks |
|||
|
Forward Tilt |
TODO |
N/A |
N/A |
|
Up Tilt |
TODO |
N/A |
N/A |
|
Down Tilt |
TODO |
N/A |
N/A |
|
Smash Attacks |
|||
|
Forward Smash |
TODO |
N/A |
N/A |
|
Up Smash |
TODO |
N/A |
N/A |
|
Down Smash |
TODO |
N/A |
N/A |
|
Aerial Attacks |
|||
|
Neutral Aerial |
TODO |
N/A |
N/A |
|
Up Aerial |
TODO |
N/A |
N/A |
|
Forward Aerial |
TODO |
N/A |
N/A |
|
Back Aerial |
TODO |
N/A |
N/A |
|
Special Attacks |
|||
|
Neutral Special |
TODO |
N/A |
N/A |
|
Up Special |
TODO |
N/A |
N/A |
|
Side Special |
TODO |
N/A |
N/A |
|
Down Special |
TODO |
N/A |
N/A |
Images
Trivia
External Links
Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块的更多相关文章
- jenkins+github持续集成中的坑
1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集 ...
- 通过 Azure Pipelines 实现持续集成之docker容器化及自动化部署
通过 Azure Pipelines 实现持续集成之docker容器化及自动化部署 Intro Azure DevOps Pipeline 现在对于公开的项目完全免费,这对于开源项目来讲无疑是个巨大的 ...
- NET Core+win10+Jenkins+Github持续集成
本篇和上一篇NET Core+win10+Jenkins+Gogs+open ssh持续集成没什么区别,只不过源码库换成github. 这里有两点不一样的是: 获取的代码的凭证不用用户名和密码用sec ...
- gitlab和jenkins做持续集成构建教程
背景介绍 上一个轮回,我花了三篇文章的时间着重向大家介绍了在条件有限的情况下,如果优雅地进行前端发版和迭代.庆七一,热烈庆祝香港回归,人民生活水平越来越好,昨天上午我自掏腰包买了台服务器,决定由冷兵器 ...
- Jenkins+Github持续集成
由于最近团队代码库从coding迁移到github,在CI工具的选型上尝试了travis-ci和circle-ci,最后决定自己搭建CI服务器,而我也有幸认领了这个任务的调研,因此有了这篇文章. 之前 ...
- ARTS-S gitlab与jenkins实现持续集成
jenkins配制 系统管理->管理插件->可选插件->选择安装 Gitlab Hook Plugin和Build Authorization Token Root Plugin插件 ...
- docker+jenkins实现持续集成
持续集成的概念我就不多说了,网上一大堆,今日主要讲讲怎么通过docker 和jenkins实现项目的持续集成.看着简单,网上完整教程很少,本人摸索很久才搞定!!! 一.首先安装docker.安装过程可 ...
- 使用Jenkins来构建Docker容器
使用Jenkins来构建Docker容器(Ubuntu 14.04) 当开发更新了代码,提交到Gitlab上,然后由测试人员触发Jenkins,于是一个应用的新版本就被构建了.听起来貌似很简单,dua ...
- 【iOS】Jenkins Gitlab持续集成打包平台搭建
Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点: ...
随机推荐
- jQuery源码研究——怎么看源码
废话 这几天有想看源码的想法,于是就开始了源码的研究,经过几天的摸索发现看源码还是有点技巧在里面的,想着把这些东东写下来作为一个小总结. 在一个多月前我对Vue源码进行了一次研究,那时看源码的方式基本 ...
- ES6中let和闭包
在开始本文之前我们先来看一段代码 for(var i=0;i<10;i++){ arr[i]=function(){ return i; } } console.log(arr[3]());// ...
- AMD && CMD
前言 JavaScript初衷:实现简单的页面交互逻辑,寥寥数语即可: 随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀 问题: 这时候JavaSc ...
- ES6 学习笔记之二 块作用域与闭包
"闭包是函数和声明该函数的词法环境的组合." 这是MDN上对闭包的定义. <JavaScript高级程序设计>中则是这样定义的:闭包是指有权访问另一个函数作用域中的变量 ...
- Promise对象的简单用法
要了解一个东西,首先要从,它是什么.用来做什么以及怎么取用它这三个方面来了解. 首先,promise是什么? 我们来参考一下MDN对它的定义: Promise 对象用于一个异步操作的最终完成(或失败) ...
- gitlab10.0安装手记
+ +exec chpst -e /opt/gitlab/etc/gitlab-workhorse/env -P \ + -U git \ + -u git \ + /opt/gitlab/embed ...
- linux文件权限查看及修改-chmod ------入门的一些常识
查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)修改文件及文件夹权限:sudo chmod -(代表类型)×××(所有者)×××(组用户) ...
- linux下安装jdk,tomcat以及mysql
环境:centOS6.8.jdk1.8,tomcat-8.5.15,mysql-5.7.18 1. 安装JDK 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看 ...
- Nginx和php是怎么通信的?
先来看一下搭建好PHP运行环境的Nginx配置文件. 非常重要的就是 fastcgi_pass 指令了,这个指令用于指定 fpm 进程监听的地址,Nginx 会把所有的 php 请求翻译成 fastc ...
- spring cron 定时任务
文章首发于个人博客:https://yeyouluo.github.io 0 预备知识:cron表达式 见 <5 参考>一节. 1 环境 eclipse mars2 + Maven3.3. ...