diff --git a/Jenkinsfile b/Jenkinsfile
index f5f766b..ad05b27 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,16 +1,3 @@
-def installDocker() {
-	sh 'curl -fsSL https://get.docker.com | sh'
-	sh 'sudo usermod -aG docker ubuntu'
-}
-
-def installEarthly() {
-	installDocker()
-
-	sh 'curl -fsSL https://github.com/earthly/earthly/releases/latest/download/earthly-linux-amd64 -o /usr/local/bin/earthly'
-	sh 'chmod +x /usr/local/bin/earthly'
-	sh 'earthly bootstrap'
-}
-
 pipeline {
 	agent none
 
@@ -34,12 +21,15 @@
 			parallel {
 				stage('ansible-lint') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly --output +lint.ansible-lint'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly --output +lint.ansible-lint'
+							}
+						}
 					}
 
 					post {
@@ -51,12 +41,15 @@
 
 				stage('helm') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly --output +lint.helm'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly --output +lint.helm'
+							}
+						}
 					}
 
 					post {
@@ -68,12 +61,15 @@
 
 				stage('markdownlint') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly --output +lint.markdownlint'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly --output +lint.markdownlint'
+							}
+						}
 					}
 
 					post {
@@ -85,12 +81,15 @@
 
 				stage('image-manifest') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly +lint.image-manifest'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly +lint.image-manifest'
+							}
+						}
 					}
 				}
 			}
@@ -100,12 +99,15 @@
 			parallel {
 				stage('go') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly --output +unit.go'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly --output +unit.go'
+							}
+						}
 					}
 
 					post {
@@ -121,13 +123,21 @@
 			parallel {
 				stage('collection') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly --output +build.collection'
-						archiveArtifacts artifacts: 'dist/**'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly --output +build.collection'
+							}
+						}
+					}
+
+					post {
+						success {
+							archiveArtifacts artifacts: 'dist/**'
+						}
 					}
 				}
 
@@ -138,12 +148,14 @@
 
 					steps {
 						script {
-							if (env.BRANCH_NAME == 'main') {
-								docker.withRegistry('https://ghcr.io', 'github-packages-token') {
-									sh 'earthly --push +images'
-								}
-							} else {
-								sh 'earthly --push +images'
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+									if (env.BRANCH_NAME == 'main') {
+										docker.withRegistry('https://ghcr.io', 'github-packages-token') {
+											sh 'earthly --push +images'
+										}
+									} else {
+										sh 'earthly --push +images'
+									}
 							}
 						}
 
@@ -155,12 +167,15 @@
 
 				stage('docs') {
 					agent {
-						label 'jammy-2c-4g'
+						label 'earthly'
 					}
 
 					steps {
-						installEarthly()
-						sh 'earthly +mkdocs-build'
+						script {
+							docker.withRegistry('https://registry.hub.docker.com', 'docker-token') {
+								sh 'earthly +mkdocs-build'
+							}
+						}
 					}
 				}
 			}
