docker: Partially fix dirtied package checks.
docker: Move standalone target closer to test tree. Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS debuild
|
FROM input AS deb
|
||||||
ARG sys_target
|
ARG sys_target
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
@@ -52,17 +52,20 @@ RUN \
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
FROM scratch AS package
|
FROM scratch AS pkg-deb
|
||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
|
|
||||||
COPY --from=debuild ${pkg_dir}/* .
|
COPY --from=input ${pkg_dir}/* .
|
||||||
|
|
||||||
|
|
||||||
FROM input AS package-install
|
FROM input AS pkg-deb-install
|
||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR ${pkg_dir}
|
WORKDIR ${pkg_dir}
|
||||||
COPY --link --from=package . .
|
COPY --from=pkg-deb . .
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
set -eux
|
set -eux
|
||||||
dpkg --info *
|
dpkg --info *
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.11-labs
|
# syntax = docker/dockerfile:1.11-labs
|
||||||
|
|
||||||
FROM input AS rpmbuild
|
FROM input AS rpm
|
||||||
ARG sys_target
|
ARG sys_target
|
||||||
ARG rust_toolchain
|
ARG rust_toolchain
|
||||||
ARG RUSTUP_HOME
|
ARG RUSTUP_HOME
|
||||||
@@ -45,20 +45,20 @@ RUN \
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
FROM scratch AS package
|
FROM scratch AS pkg-rpm
|
||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
|
|
||||||
COPY --link --from=rpmbuild ${pkg_dir}/* .
|
COPY --link --from=input ${pkg_dir}/* .
|
||||||
|
|
||||||
|
|
||||||
FROM redhat/ubi9 AS package-install
|
FROM input AS pkg-rpm-install
|
||||||
ARG pkg_dir
|
ARG pkg_dir
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
COPY --link --from=input . .
|
COPY --link --from=input . .
|
||||||
|
|
||||||
WORKDIR ${pkg_dir}
|
WORKDIR ${pkg_dir}
|
||||||
COPY --link --from=package . .
|
COPY --link --from=pkg-rpm . .
|
||||||
RUN <<EOF
|
RUN <<EOF
|
||||||
set -eux
|
set -eux
|
||||||
rpm -i --test *
|
rpm -i --test *
|
||||||
|
|||||||
@@ -288,27 +288,6 @@ target "dockerhub" {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "tuwunel" {
|
|
||||||
name = elem("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
|
||||||
tags = [
|
|
||||||
elem_tag("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
|
||||||
]
|
|
||||||
output = ["type=docker,compression=zstd,mode=min"]
|
|
||||||
matrix = cargo_rust_feat_sys
|
|
||||||
inherits = [
|
|
||||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
|
||||||
]
|
|
||||||
contexts = {
|
|
||||||
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
|
||||||
}
|
|
||||||
target = "tuwunel"
|
|
||||||
dockerfile-inline =<<EOF
|
|
||||||
FROM input AS tuwunel
|
|
||||||
EXPOSE 8008 8448
|
|
||||||
ENTRYPOINT ["${cargo_install_root}/bin/tuwunel"]
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Complement tests
|
# Complement tests
|
||||||
#
|
#
|
||||||
@@ -528,6 +507,14 @@ target "smoketest" {
|
|||||||
# Installation
|
# Installation
|
||||||
#
|
#
|
||||||
|
|
||||||
|
group "installs" {
|
||||||
|
targets = [
|
||||||
|
"install",
|
||||||
|
"standalone",
|
||||||
|
"tuwunel",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
install_labels = {
|
install_labels = {
|
||||||
"org.opencontainers.image.authors" = "${package_authors}"
|
"org.opencontainers.image.authors" = "${package_authors}"
|
||||||
"org.opencontainers.image.created" ="${package_last_modified}"
|
"org.opencontainers.image.created" ="${package_last_modified}"
|
||||||
@@ -542,13 +529,40 @@ install_labels = {
|
|||||||
"org.opencontainers.image.version" = "${package_version}"
|
"org.opencontainers.image.version" = "${package_version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
target "tuwunel" {
|
||||||
|
name = elem("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
tags = [
|
||||||
|
elem_tag("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
|
]
|
||||||
|
output = ["type=docker,compression=zstd,mode=min"]
|
||||||
|
matrix = cargo_rust_feat_sys
|
||||||
|
inherits = [
|
||||||
|
elem("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
|
]
|
||||||
|
contexts = {
|
||||||
|
input = (
|
||||||
|
rust_toolchain == "stable"
|
||||||
|
|| cargo_profile == "release-max-perf"
|
||||||
|
|| cargo_profile == "release"
|
||||||
|
|| cargo_profile == "release-debuginfo"?
|
||||||
|
elem("target:standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]):
|
||||||
|
elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
|
)
|
||||||
|
}
|
||||||
|
target = "tuwunel"
|
||||||
|
dockerfile-inline =<<EOF
|
||||||
|
FROM input AS tuwunel
|
||||||
|
EXPOSE 8008 8448
|
||||||
|
ENTRYPOINT ["tuwunel"]
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
target "standalone" {
|
target "standalone" {
|
||||||
name = elem("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
elem_tag("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "standalone"
|
|
||||||
labels = install_labels
|
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
@@ -556,6 +570,7 @@ target "standalone" {
|
|||||||
contexts = {
|
contexts = {
|
||||||
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
}
|
}
|
||||||
|
target = "standalone"
|
||||||
dockerfile-inline =<<EOF
|
dockerfile-inline =<<EOF
|
||||||
FROM scratch AS standalone
|
FROM scratch AS standalone
|
||||||
COPY --from=input /usr/bin/tuwunel .
|
COPY --from=input /usr/bin/tuwunel .
|
||||||
@@ -621,14 +636,15 @@ target "pkg-rpm-install" {
|
|||||||
tags = [
|
tags = [
|
||||||
elem_tag("pkg-rpm-install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("pkg-rpm-install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "package-install"
|
target = "pkg-rpm-install"
|
||||||
output = ["type=cacheonly,compression=zstd,mode=min"]
|
output = ["type=cacheonly,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
elem("pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
elem("pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
]
|
]
|
||||||
contexts = {
|
contexts = {
|
||||||
package = elem("target:pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
input = "docker-image://redhat/ubi9"
|
||||||
|
pkg-rpm = elem("target:pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -637,23 +653,23 @@ target "pkg-rpm" {
|
|||||||
tags = [
|
tags = [
|
||||||
elem_tag("pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("pkg-rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "package"
|
target = "pkg-rpm"
|
||||||
output = ["type=docker,compression=zstd,mode=min"]
|
output = ["type=docker,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
elem("rpmbuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
elem("rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
]
|
]
|
||||||
contexts = {
|
contexts = {
|
||||||
rpmbuild = elem("target:rpmbuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
input = elem("target:rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target "rpmbuild" {
|
target "rpm" {
|
||||||
name = elem("rpmbuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
elem_tag("rpmbuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("rpm", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "rpmbuild"
|
target = "rpm"
|
||||||
dockerfile = "${docker_dir}/Dockerfile.cargo.rpm"
|
dockerfile = "${docker_dir}/Dockerfile.cargo.rpm"
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
@@ -672,7 +688,7 @@ target "pkg-deb-install" {
|
|||||||
tags = [
|
tags = [
|
||||||
elem_tag("pkg-deb-install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("pkg-deb-install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "package-install"
|
target = "pkg-deb-install"
|
||||||
output = ["type=cacheonly,compression=zstd,mode=min"]
|
output = ["type=cacheonly,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
@@ -680,7 +696,7 @@ target "pkg-deb-install" {
|
|||||||
]
|
]
|
||||||
contexts = {
|
contexts = {
|
||||||
input = elem("target:diner", [feat_set, sys_name, sys_version, sys_target])
|
input = elem("target:diner", [feat_set, sys_name, sys_version, sys_target])
|
||||||
package = elem("target:pkg-deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
pkg-deb = elem("target:pkg-deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,23 +705,23 @@ target "pkg-deb" {
|
|||||||
tags = [
|
tags = [
|
||||||
elem_tag("pkg-deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("pkg-deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "package"
|
target = "pkg-deb"
|
||||||
output = ["type=docker,compression=zstd,mode=min"]
|
output = ["type=docker,compression=zstd,mode=min"]
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
elem("debuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
elem("deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
]
|
]
|
||||||
contexts = {
|
contexts = {
|
||||||
debuild = elem("target:debuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
input = elem("target:deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target "debuild" {
|
target "deb" {
|
||||||
name = elem("debuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
name = elem("deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||||
tags = [
|
tags = [
|
||||||
elem_tag("debuild", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
elem_tag("deb", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||||
]
|
]
|
||||||
target = "debuild"
|
target = "deb"
|
||||||
dockerfile = "${docker_dir}/Dockerfile.cargo.deb"
|
dockerfile = "${docker_dir}/Dockerfile.cargo.deb"
|
||||||
matrix = cargo_rust_feat_sys
|
matrix = cargo_rust_feat_sys
|
||||||
inherits = [
|
inherits = [
|
||||||
|
|||||||
Reference in New Issue
Block a user