- Jenkins server
- Docker-host server
Dockerfileunder/home/dockeradminin user home directory on docker host# Pull tomcat latest image from dockerhub From tomcat # Maintainer MAINTAINER "AR Shankar" # copy war file on to container COPY ./webapp.war /usr/local/tomcat/webapps
Install "publish Over SSH"
Manage Jenkins>Manage Plugins>Available>Publish over SSH
Enable connection between Docker-host and Jenkins
-
Manage Jenkins>Configure System>Publish Over SSH>SSH Servers- SSH Servers:
- Name:
docker-host-
Hostname:
<ServerIP> -
username:
dockeradmin -
Advanced> choseUse password authentication, or use a different key -
password:
*******
-
- SSH Servers:
- Name:
-
Enter an item name:
Deploy_on_Container- Copy from:
Deploy_on_Docker_Host
- Copy from:
-
Source Code Management:
- Repository:
https://github.com/yankils/hello-world.git - Branches to build :
*/master
- Repository:
-
Poll SCM : -
* * * * -
Build:
- Root POM:
pom.xml - Goals and options:
clean install package
- Root POM:
-
Post-build Actions
- Send build artifacts over SSH
- SSH Publishers
- SSH Server Name:
docker-host Transfers>Transfer set- Source files:
webapp/target/*.war - Remove prefix:
webapp/target - Remote directory:
//home//ansadminor. - Exec command:
cd /home/dockeradmin; docker build -t simple-devops-image .; docker run -d --name simple-devops-container -p 8080:8080 simple-devops-image;
- Source files:
- Send build artifacts over SSH
Save and run the job now.