ทดสอบการใช้งาน jenkins ผ่านทาง Docker
1 ติดตั้ง Docker Binary
1 2 3 4 5 6 7 8 |
$ wget https://download.docker.com/linux/static/nightly/x86_64/docker-18.05.0-ce-dev.tgz $ tar xvf docker-18.05.0-ce-dev.tgz $ sudo cp docker/* /usr/bin/ $ sudo dockerd & INFO[2018-04-07T20:57:51.102264931+07:00] Docker daemon commit=b0b2879 graphdriver(s)=overlay2 version=18.05.0-ce-dev INFO[2018-04-07T20:57:51.102984186+07:00] Daemon has completed initialization INFO[2018-04-07T20:57:51.110894479+07:00] API listen on /var/run/docker.sock |
2 ดาวโหลด jenkins image
1 2 3 4 5 6 |
$ sudo docker pull jenkins/jenkins ... Status: Downloaded newer image for jenkins/jenkins:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins/jenkins latest aa68f8a962d3 5 days ago 804MB |
3 เริ่มต้น Docker
1 2 |
$ mkdir -p ~/Jenkins/jenkins_home $ sudo docker run -d -p 8080:8080 -p 50000:50000 -v $HOME/Jenkins/jenkins_home:/var/jenkins_home -t --name jenkins jenkins/jenkins |
4 ดูค่า temporary password
1 2 |
$ cat ~/Jenkins/jenkins_home/secrets/initialAdminPassword 127744586d66486b8c68e81092a72d27 |
8 เปิด browser localhost:8080 และนำค่า password มาใส่
หลังจากกรอก password ก็ติดตั้ง plugin
สร้าง admin user และ กำหนด password
เริ่มต้น การใช้งาน
หยุด Docker
1 2 3 4 5 6 7 |
$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5ccc111e7b60 jenkins/jenkins "/sbin/tini -- /usr/…" 34 minutes ago Up 7 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins (docker name jenkins) $ sudo docker stop jenkins $ sudo docker start jenkins |
มาเริ่มต้นสร้าง marven project ด้วย command line
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
$ mvn -version $ mkdir ~/MavenProject $ cd ~/MavenProject mvn archetype:generate ... Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1162: (enter ผ่าน) Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6: 6 Define value for property 'groupId': net.itbakery <-- ค่า groupID Define value for property 'artifactId': mavendemo <-- ค่า artifactID หรือ project จะเป็น directory Define value for property 'version' 1.0-SNAPSHOT: : Define value for property 'package' net.itbakery: : $ cd mavendemo <-- project ที่สร้างขั้น $ tree . . ├── pom.xml └── src ├── main │ └── java │ └── net │ └── itbakery │ └── App.java └── test └── java └── net └── itbakery └── AppTest.java 9 directories, 3 files $ mvn package [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mavendemo --- [INFO] Building jar: /home/mee/MavenProject/mavendemo/target/mavendemo-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.341 s [INFO] Finished at: 2018-04-07T22:52:04+07:00 [INFO] ------------------------------------------------------------------------ $ java -cp target/mavendemo-1.0-SNAPSHOT.jar net.itbakery.App Hello World! $ mvn test ... ------------------------------------------------------- T E S T S ------------------------------------------------------- Running net.itbakery.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.544 s [INFO] Finished at: 2018-04-07T22:00:30+07:00 [INFO] ------------------------------------------------------------------------ |
Test file Apptest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package net.itbakery; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class AppTest extends TestCase { public AppTest( String testName ) { super( testName ); } public static Test suite() { return new TestSuite( AppTest.class ); } public void testApp() { assertTrue( true ); } } |
กด manage Jenkins เพื่อติดตั้ง maven plugin เลือก plugin แล้วก็ Download now and install after restart
สร้าง job ใหม่ ด้วยการกด Create new jobs
ตั้งชื่อ mavendemo เลือก Maven project กด ok
ติดตั้ง jdk , maven
1 2 3 4 |
$ docker exec -it jenkins bash jenkins@5ccc111e7b60:~$ cd /var/jenkins_home jenkins@5ccc111e7b60:~$ wget http://ftp.osuosl.org/pub/funtoo/distfiles/oracle-java/jdk-8u162-linux-x64.tar.gz jenkins@5ccc111e7b60:~$ wget http://apache.mirror.anlx.net/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz |
ใน section Global Tool Configuration
jdk
maven
note local install
1 2 3 |
Download wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war JENKINS_HOME=~/.jenkins java -jar jenkins.war --httpPort=8080 |