Category - IT技术

jersey html5 文件上传 FormData restful    2017-07-12 16:08:46    874

本文主要使用jersey1.x,结合html5的FormData对象来进行多文件提交示例讲解

FormData

FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容。IE8及以下是不支持FormData的。FormData还支持困扰众多开发者已久的ajax的上传文件,以前我们上传文件,需要写一个表单直接刷新提交,但是这里不需要了。

代码示例

html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script src="js/jquery.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. function test(){
  8. var form = new FormData(document.getElementById("form1"));
  9. $.ajax({
  10. url:"http://192.168.2.8:8066/file/multiFiles/",
  11. type:"post",
  12. data:form,
  13. processData:false,
  14. contentType:false,
  15. success:function(data){
  16. alert("pass");
  17. },
  18. error:function(e){
  19. alert("错误!!");
  20. }
  21. });
  22. }
  23. </script>
  24. </head>
  25. <body>
  26. <form id
docker jenkins 容器 镜像    2017-06-07 17:51:34    1827
环境:
    CentOS 7
    Docker 1.10.3

1、本机安装docker环境,并配置TCP访问接口
    # vi /usr/lib/systemd/system/docker.service
    修改ExecStart为:
    ExecStart=/usr/bin/docker daemon --tls=false -H unix:///var/run/docker.sock  -H tcp://0.0.0.0:2375

2、pull并运行jenkins的docker镜像

    # docker pull index.docker.io/library/jenkins:1.642.2

    # docker run -d -e "DOCKER_HOST=tcp://192.168.10.136:2375" --name myjenkins -u root -p 8080:8080 -p 50000:50000 -v /home/jenkins-home-docker:/var/jenkins_home jenkins
    # docker cp /usr/bin/docker myjenkins:/usr/bin

3、安装插件:CloudBees Docker Build and Publish plug

4、配置jenkins镜像内部的docker,这里我们直接使用docker的二进制编译版本:
    # wget https://get.docker.com/builds/Linux/x86_64/docker-1.11.2.tgz
    # tar xvf docker-1.11.2.tgz
    # mv docker/* /usr/bin/docker
5、创建项目apache,源码管理选择git,URL为:https://git.coding.net/lightingLYG/apache.git
增加构建步奏,选择“Docker Build and Publish”,填写name,Docker Host URI为tcp://宿主机host:2375
然后点开高级,选中“Skip Push”
保存后即可构建,此处跳过了push到服务器的操作

6、到宿主机中查看镜像是否打包完成
    # docker images

by 刘迎光@萤火虫工作室
OpenB

docker jenkins 容器 镜像    2017-06-07 17:38:18    1173

最近又重新部署了jenkins持续集成系统,看到之前整理的文章不够详细,于是重新整理了docker下使用jenkins的容器进行持续集成的相关文章,拿来分享下

docker环境

  1. registry镜像:registry:2.6.1
  2. docker:17.05.0-ce
  3. registry宿主机IP:192.168.2.10
  4. jenkins的docker镜像:jenkins:2.46.3-alpine

docker-compose 文件:

  1. version: '2'
  2. services:
  3. jenkins:
  4. image: jenkins:2.46.3-alpine
  5. hostname: jenkins
  6. ports:
  7. - "8080:8080"
  8. - "50000:50000"
  9. environment:
  10. - DOCKER_HOST=tcp://192.168.2.10:2375
  11. volumes:
  12. - /home/soft/jenkins_home:/var/jenkins_home
  13. logging:
  14. options:
  15. max-size: "1000k"

部分解释:

jenkins的docker镜像

这个镜像是基于官方的镜像(jenkins:2.46.3-alpine)修改添加部分定制化内容(增加时区设置为上海,增加docker-17.05.0-ce的执行命令到容器中)的镜像

环境变量:DOCKER_HOST

这里的环境变量主要是给容器内的docker执行文件用的,用来标识docker运行的主机,即默认执行如下命令:

  1. docker -H 192.168.2.10:2375 ···

为什么要将docker的可执行文件放到容器中?

主要是为了方便容器中的jenkins在使用的“CloudBees Docker Build and Publish plug”插件中执行docker命令

CentOS7 EFK elasticsearch fluent kibana    2017-05-26 13:11:54    1255

Fluentd并非是专用于日志文件收集的,而是一个通用的信息收集、整理、转发的流式数据处理工具,日志收集只是它十分典型的一个运用场景。重要的是,Fluentd的日志收集功能对容器支持十分完备,远远胜于Logstash等传统日志收集工具。一方面得益于Fluentd社区开发了几种专用于Docker日志文件的收集插件,这些插件能够在Fluentd收集完Docker日志以后自动为它加上容器相关的信息,比较推荐其中的fluent-plugin-docker-metadata-filter这一款插件,它提供的信息颇为齐全。Logstash对于这方面依然比较空缺,GitHub上唯一能够找到的一款社区插件也已经在一年前就停止开发。另一方面,当前Docker官方支持的日志驱动除了默认的使用本地目录,还可以直接发送到远程的日志存储或日志采集服务,而其中日志采集服务目前仅仅支持Splunk和Fluentd,同样没有Logstash等老一辈开源日志工具的踪影。

安装elasticsearch

安装JDK或者openJDK(这里以openJDK为例)

  1. [root@elk elk]# yum install java-1.8.0-openjdk -y

安装elasticsearch

  1. [root@elk elk]# wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.3/elasticsearch-2.3.3.rpm
  2. [root@elk elk]# yum localinstall elasticsearch-2.3.3.rpm -y
  3. .....
  4. Installing : elasticsearch-2.3.3-1.noarch 1/1
  5. ### NOT starting on installation,
java logback EFK 日志    2017-05-26 13:07:45    1817

此篇文章主要讲述EFK与logback的整合,主要解决docker的log_driver的日志输出的问题:
1. 首先,处理错误栈信息的时候,docker会将错误栈分解成多行,而使用此插件,则可以将错误栈完整的保存在elasticsearch的一条记录中
2. docker内部的服务可以不用写日志文件了(或者有限循环),如果服务还活着,那么日志一定会被写入到elasticsearch

打包日志插件

源码地址:logback-more-appenders

关于此插件的打包,这里不多做说明,相应jar包可以在刘迎光的nexus中找到,搜索“logback-more-appenders”即可

项目引用

pom.xml文件添加依赖

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.firewarm</groupId>
  5. <artifactId>testLogback4Fluentd</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>testLogback4Fluentd Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <dependencies>
  11. <dependency>
  12. <groupI
22/26