init
This commit is contained in:
79
Jenkinsfile
vendored
Normal file
79
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
pipeline {
|
||||
agent any
|
||||
tools {
|
||||
jdk 'jdk-21'
|
||||
maven 'mvn 3.9.9'
|
||||
}
|
||||
environment {
|
||||
SSH_CREDENTIALS_ID = 'ssh-true-nas' // ID van de SSH-sleutel in Jenkins
|
||||
TRUENAS_HOST = '192.168.2.31' // IP-adres of hostname van TrueNAS
|
||||
SSH_USER = 'jenkins' // SSH-gebruiker voor TrueNAS
|
||||
IMAGE_REPO = 'veenm' // Naam van de Docker-image
|
||||
IMAGE_NAME = 'jobfindr' // Naam van de Docker-image
|
||||
IMAGE_TAG = 'latest'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout Code') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Angular Project') {
|
||||
steps {
|
||||
script {
|
||||
// Bouw het Quarkus-project (assumeert Maven als build tool)
|
||||
sh 'ng build'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Docker Image') {
|
||||
steps {
|
||||
script {
|
||||
|
||||
// Maak een Docker-image gebaseerd op de Dockerfile
|
||||
sh 'ls'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Docker Image') {
|
||||
steps {
|
||||
script {
|
||||
// Push de Docker-image naar een Docker Registry
|
||||
sh """
|
||||
docker push ${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG}
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Deploy Docker Image to TrueNAS') {
|
||||
steps {
|
||||
script {
|
||||
// Verbind via SSH met TrueNAS en voer Docker-installatiecommando's uit
|
||||
sshagent([SSH_CREDENTIALS_ID]) {
|
||||
sh """
|
||||
ssh -o StrictHostKeyChecking=no ${SSH_USER}@${TRUENAS_HOST} << EOF
|
||||
sudo docker stop ${IMAGE_NAME} || true
|
||||
sudo docker rm ${IMAGE_NAME} || true
|
||||
sudo docker pull ${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG} || echo "Local image will be used"
|
||||
sudo docker run -d --name ${IMAGE_NAME} -p 8080:8080 \
|
||||
${IMAGE_REPO}/${IMAGE_NAME}:${IMAGE_TAG}
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
echo "Pipeline execution completed."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user