More pipeline development
This commit is contained in:
parent
c8e5ac7750
commit
adf2ceaaf4
@ -1,38 +1,115 @@
|
||||
def ImageRepository = "registry.test-chamber-13.lan:5000"
|
||||
def ImageName = "factorio"
|
||||
def ImageTag = "latest"
|
||||
|
||||
def AlpineGlibcBaseURL = "https://github.com/sgerrand/alpine-pkg-glibc/releases/download"
|
||||
def AlpineGlibcPackageVersion = "2.30-r0"
|
||||
def AlpineGlibcBasePackageFilename = "glibc-${AlpineGlibcPackageVersion}.apk"
|
||||
def AlpineGlibcBinPackageFilename = "glibc-${AlpineGlibcPackageVersion}.apk"
|
||||
def AlpineGlibcI18nPackageFilename = "glibc-${AlpineGlibcPackageVersion}.apk"
|
||||
|
||||
def FactorioDownloadURL = "https://www.factorio.com/get-download/stable/headless/linux64"
|
||||
def FactorioFileName = "/tmp/factorio.tar"
|
||||
|
||||
def dockerFile = """
|
||||
FROM alpine:3.10
|
||||
|
||||
MAINTAINER The_Spider <spider@smoothnet.org>
|
||||
|
||||
RUN \
|
||||
ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" && \
|
||||
ALPINE_GLIBC_PACKAGE_VERSION="2.30-r0" && \
|
||||
ALPINE_GLIBC_BASE_PACKAGE_FILENAME="glibc-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
|
||||
ALPINE_GLIBC_BIN_PACKAGE_FILENAME="glibc-bin-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
|
||||
ALPINE_GLIBC_I18N_PACKAGE_FILENAME="glibc-i18n-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
|
||||
apk add --no-cache --virtual=.build-dependencies wget ca-certificates && \
|
||||
printf '%s\n' \
|
||||
"-----BEGIN PUBLIC KEY-----" \
|
||||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApZ2u1KJKUu/fW4A25y9m" \
|
||||
"y70AGEa/J3Wi5ibNVGNn1gT1r0VfgeWd0pUybS4UmcHdiNzxJPgoWQhV2SSW1JYu" \
|
||||
"tOqKZF5QSN6X937PTUpNBjUvLtTQ1ve1fp39uf/lEXPpFpOPL88LKnDBgbh7wkCp" \
|
||||
"m2KzLVGChf83MS0ShL6G9EQIAUxLm99VpgRjwqTQ/KfzGtpke1wqws4au0Ab4qPY" \
|
||||
"KXvMLSPLUp7cfulWvhmZSegr5AdhNw5KNizPqCJT8ZrGvgHypXyiFvvAH5YRtSsc" \
|
||||
"Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m" \
|
||||
"1QIDAQAB" \
|
||||
"-----END PUBLIC KEY-----" > "/etc/apk/keys/sgerrand.rsa.pub" && \
|
||||
wget \
|
||||
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \
|
||||
apk add --no-cache \
|
||||
"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \
|
||||
rm -v "/etc/apk/keys/sgerrand.rsa.pub" && \
|
||||
/usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true && \
|
||||
echo "export LANG=$LANG" > /etc/profile.d/locale.sh && \
|
||||
apk del glibc-i18n && \
|
||||
rm -v "/root/.wget-hsts" && \
|
||||
apk del .build-dependencies && \
|
||||
rm -v \
|
||||
"$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
|
||||
"$ALPINE_GLIBC_I18N_PACKAGE_FILENAME"
|
||||
apk add --update --no-cache \
|
||||
pwgen \
|
||||
su-exec \
|
||||
binutils \
|
||||
gettext \
|
||||
libintl \
|
||||
shadow && \
|
||||
apk add --update --no-cache --virtual=.build-dependencies \
|
||||
curl \
|
||||
ca-certificates && \
|
||||
printf '%s\n' "-----BEGIN PUBLIC KEY-----" \
|
||||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApZ2u1KJKUu/fW4A25y9m" \
|
||||
"y70AGEa/J3Wi5ibNVGNn1gT1r0VfgeWd0pUybS4UmcHdiNzxJPgoWQhV2SSW1JYu" \
|
||||
"tOqKZF5QSN6X937PTUpNBjUvLtTQ1ve1fp39uf/lEXPpFpOPL88LKnDBgbh7wkCp" \
|
||||
"m2KzLVGChf83MS0ShL6G9EQIAUxLm99VpgRjwqTQ/KfzGtpke1wqws4au0Ab4qPY" \
|
||||
"KXvMLSPLUp7cfulWvhmZSegr5AdhNw5KNizPqCJT8ZrGvgHypXyiFvvAH5YRtSsc" \
|
||||
"Zvo9GI2e2MaZyo9/lvb+LbLEJZKEQckqRj4P26gmASrZEPStwc+yqy1ShHLA0j6m" \
|
||||
"1QIDAQAB" \
|
||||
"-----END PUBLIC KEY-----" > "/etc/apk/keys/sgerrand.rsa.pub" && \
|
||||
curl -sSLO "${AlpineGlibcBaseURL}/${AlpineGlibcPackageVersion}/${AlpineGlibcBasePackageFilename}" && \
|
||||
curl -sSLO "${AlpineGlibcBaseURL}/${AlpineGlibcPackageVersion}/${AlpineGlibcBinPackageFilename}" && \
|
||||
curl -sSLO "${AlpineGlibcBaseURL}/${AlpineGlibcPackageVersion}/${AlpineGlibcI18nPackageFilename}" && \
|
||||
apk add --no-cache \
|
||||
"${AlpineGlibcBasePackageFilename}" \
|
||||
"${AlpineGlibcBinPackageFilename}" \
|
||||
"${AlpineGlibcI18nPackageFilename}" && \
|
||||
rm -v "/etc/apk/keys/sgerrand.rsa.pub" && \
|
||||
/usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 "$LANG" || true && \
|
||||
mkdir -p /opt /factorio && \
|
||||
curl -sSL "${FactorioDownloadURL}" -o ${FactorioFileName} && \
|
||||
tar -x -f ${FactorioFileName} --directory /opt && \
|
||||
apk del glibc-i18n && \
|
||||
apk del .build-dependencies && \
|
||||
rm -v \
|
||||
"${AlpineGlibcBasePackageFilename}" \
|
||||
"${AlpineGlibcBinPackageFilename}" \
|
||||
"${AlpineGlibcI18nPackageFilename}" \
|
||||
${FactorioFileName} && \
|
||||
rm -v "/root/.wget-hsts" || true && \
|
||||
addgroup -g 1000 -S factorio && \
|
||||
adduser -u 1000 -G factorio -s /bin/sh -SDH factorio && \
|
||||
chown -R factorio:factorio /opt/factorio /factorio
|
||||
"""
|
||||
|
||||
podTemplate(
|
||||
containers: [
|
||||
containerTemplate(
|
||||
name: "docker",
|
||||
image: "docker:19.03",
|
||||
command: "sleep",
|
||||
args: "99d",
|
||||
envVars: [
|
||||
envVar(
|
||||
key: "DOCKER_HOST",
|
||||
value: "tcp://localhost:2375"
|
||||
)
|
||||
]
|
||||
),
|
||||
containerTemplate(
|
||||
name: "docker-daemon",
|
||||
image: "docker:19.03-dind",
|
||||
command: "dockerd-entrypoint.sh",
|
||||
args: "--insecure-registry registry.test-chamber-13.lan:5000",
|
||||
privileged: true,
|
||||
envVars: [
|
||||
envVar(
|
||||
key: "DOCKER_TLS_CERTDIR",
|
||||
value: ""
|
||||
)
|
||||
],
|
||||
)
|
||||
]
|
||||
) {
|
||||
node(POD_LABEL) {
|
||||
container("docker") {
|
||||
stage("Test DinD Daemon") {
|
||||
sh """
|
||||
docker version
|
||||
"""
|
||||
}
|
||||
stage("Write Dockerfile"){
|
||||
writeFile(file: "Dockerfile", text: dockerFile)
|
||||
}
|
||||
stage("Build Container"){
|
||||
sh """
|
||||
docker build --tag ${ImageRepository}/${ImageName}:${ImageTag} ./
|
||||
"""
|
||||
}
|
||||
stage("Push Container"){
|
||||
sh """
|
||||
docker push ${ImageRepository}/${ImageName}:${ImageTag}
|
||||
"""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user