Build our own caddy image (#61881)

* Add initial caddy image config

* Add initial scaffold for new image

* Add caddy image tests

* Update caddy lockfile

* Invalidate repo when *any* file changes, not just existing ones

The old setup resulted in a circular dep where if you added a new image, then to trigger an update you had to edit an existing lockfile.

Ideally we'd only invalidate when a wolfi-images/*.lock.json file changes, but unsure if this is possible

* Remove comment

* Use watch_tree for repo invalidation
This commit is contained in:
Will Dollman 2024-04-15 17:10:14 +01:00 committed by GitHub
parent 3cc7e725a4
commit d8deee19f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 950 additions and 4 deletions

View File

@ -0,0 +1,42 @@
load("//dev:oci_defs.bzl", "image_repository", "oci_image", "oci_push", "oci_tarball")
load("@container_structure_test//:defs.bzl", "container_structure_test")
load("//wolfi-images:defs.bzl", "wolfi_base")
oci_image(
name = "image",
base = ":base_image",
entrypoint = [
"caddy",
"run",
"--config",
"/etc/caddy/Caddyfile",
"--adapter",
"caddyfile",
],
)
oci_tarball(
name = "image_tarball",
image = ":image",
repo_tags = ["caddy:candidate"],
)
container_structure_test(
name = "image_test",
timeout = "short",
configs = ["image_test.yaml"],
driver = "docker",
image = ":image",
tags = [
"exclusive",
"requires-network",
],
)
oci_push(
name = "candidate_push",
image = ":image",
repository = image_repository("caddy"),
)
wolfi_base()

View File

@ -0,0 +1,14 @@
schemaVersion: "2.0.0"
commandTests:
- name: "caddy is runnable"
command: "caddy"
args:
- version
fileExistenceTests:
- name: '/etc/caddy/Caddyfile'
path: '/etc/caddy/Caddyfile'
shouldExist: true
uid: 0
gid: 0

847
wolfi-images/caddy.lock.json Executable file
View File

@ -0,0 +1,847 @@
{
"configHash": "422dc2750041ad099ec66fc26497007d1e90a33863875edee4a0e586400c2fee",
"contents": {
"keyring": [
{
"name": "packages.wolfi.dev/os/wolfi-signing.rsa.pub",
"url": "https://packages.wolfi.dev/os/wolfi-signing.rsa.pub"
},
{
"name": "packages.sgdev.org/sourcegraph-melange-prod.rsa.pub",
"url": "https://packages.sgdev.org/sourcegraph-melange-prod.rsa.pub"
}
],
"packages": [
{
"architecture": "x86_64",
"checksum": "Q1YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"control": {
"checksum": "sha1-YQmPfQ1Ym4tfjrCMChbESrrRg/o=",
"range": "bytes=696-1032"
},
"data": {
"checksum": "sha256-5hhCQURRrKVfPk8TOZVxfjceIUkVE0fh3/vEJBk88Ps=",
"range": "bytes=1033-256258"
},
"name": "ca-certificates-bundle",
"signature": {
"checksum": "sha1-E1NIpx8yCH6x5GcSqB4MzKQxuq4=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/ca-certificates-bundle-20240315-r0.apk",
"version": "20240315-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1OHhyuiUviNHTg939DA0lyeRee18=",
"control": {
"checksum": "sha1-OHhyuiUviNHTg939DA0lyeRee18=",
"range": "bytes=702-1052"
},
"data": {
"checksum": "sha256-om3EZzEM+3dD9a77sOB2uOuAKBlf7XoUW/ORnDHQvZY=",
"range": "bytes=1053-125427"
},
"name": "wolfi-baselayout",
"signature": {
"checksum": "sha1-1CcRiULOFhX8ldA/Ae2qCMUGNmQ=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/wolfi-baselayout-20230201-r7.apk",
"version": "20230201-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1DyZ5L88J9MmDMYgbsywXdJdnw04=",
"control": {
"checksum": "sha1-DyZ5L88J9MmDMYgbsywXdJdnw04=",
"range": "bytes=699-1107"
},
"data": {
"checksum": "sha256-3xIIHf7osttdb7FoJTbfURbo4YuaB3knm5Kd3B5p+dI=",
"range": "bytes=1108-267814"
},
"name": "ld-linux",
"signature": {
"checksum": "sha1-lxFSv68mPMJwO+PthEdXfKHuLWk=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/ld-linux-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"control": {
"checksum": "sha1-UvgNLBt9CKIOp7pN3EI0pgBlzXo=",
"range": "bytes=696-1051"
},
"data": {
"checksum": "sha256-NaRRsIIgVTbofef14Qsnf+rysYDJXOXPKgfj6bAhP94=",
"range": "bytes=1052-408274"
},
"name": "glibc-locale-posix",
"signature": {
"checksum": "sha1-Iug0EjR+0K/k6fl0wi0prJHKBBo=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-locale-posix-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"control": {
"checksum": "sha1-PnEJFSqU/wFNmbOLGHbgqFwS/yU=",
"range": "bytes=695-1321"
},
"data": {
"checksum": "sha256-D6XvEcPrHmlsiI6HbbE51xmiTM1c5y6DV4MrHrCVuNo=",
"range": "bytes=1322-5861480"
},
"name": "glibc",
"signature": {
"checksum": "sha1-ypPC9SJASGEATsvLoDuEEUobhAs=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/glibc-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"control": {
"checksum": "sha1-mVgCtcYDHEkUa+8x41i7w9cQ4Qg=",
"range": "bytes=704-1079"
},
"data": {
"checksum": "sha256-xE4spLqr7qIgImPfMC1kMY1a7Xu7xu1/eLkBMgOzSSc=",
"range": "bytes=1080-77936"
},
"name": "protobuf-c",
"signature": {
"checksum": "sha1-NGL0ELlBK8mhhAzuOkm17d2LbRo=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/protobuf-c-1.5.0-r3.apk",
"version": "1.5.0-r3"
},
{
"architecture": "x86_64",
"checksum": "Q135v8eEv8ZI/s/HXKkE96INoEoJk=",
"control": {
"checksum": "sha1-35v8eEv8ZI/s/HXKkE96INoEoJk=",
"range": "bytes=704-1040"
},
"data": {
"checksum": "sha256-3y4Tb3jy8M/ZXhnY6jxwj2YQFhdjLr/kjXhqJX7I+is=",
"range": "bytes=1041-27155"
},
"name": "krb5-conf",
"signature": {
"checksum": "sha1-WWjewHF5gekYrUPqdUHQEPIc97M=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-conf-1.0-r1.apk",
"version": "1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1TAnNLCVTaCylmbN84TlliyM47qM=",
"control": {
"checksum": "sha1-TAnNLCVTaCylmbN84TlliyM47qM=",
"range": "bytes=704-1069"
},
"data": {
"checksum": "sha256-+6lzaltti6IVf7RNynwcL9LmP9cJKMOjONPFUhHtnsA=",
"range": "bytes=1070-57492"
},
"name": "keyutils-libs",
"signature": {
"checksum": "sha1-MY+r6+HKyYcrgJtVqyG50KdP+QY=",
"range": "bytes=0-703"
},
"url": "https://packages.wolfi.dev/os/x86_64/keyutils-libs-1.6.3-r1.apk",
"version": "1.6.3-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"control": {
"checksum": "sha1-baVeVcWh84uv5G9/ZuxJCTg06uQ=",
"range": "bytes=700-1058"
},
"data": {
"checksum": "sha256-9BtoieN8gK8o4nzCDUyWkp6RmEsXrOwdu/XeTdZtDSE=",
"range": "bytes=1059-61938"
},
"name": "libverto",
"signature": {
"checksum": "sha1-TVkKg7JApxa7nvaj9DNvOsTv3Io=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/libverto-0.3.2-r1.apk",
"version": "0.3.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1M+CfES+G7micWuVpGjyxcTOj9zQ=",
"control": {
"checksum": "sha1-M+CfES+G7micWuVpGjyxcTOj9zQ=",
"range": "bytes=702-1120"
},
"data": {
"checksum": "sha256-UqwHAn95sL7AsIRMN0DM1TtSJ2Q5KD1WN4+uU8+Knqg=",
"range": "bytes=1121-52564"
},
"name": "libcom_err",
"signature": {
"checksum": "sha1-qciIi1MZRLclhn8K+GnrOJlNNfE=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcom_err-1.47.0-r1.apk",
"version": "1.47.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1+rBEmKEIywe0o/a65ZPjWoUECRQ=",
"control": {
"checksum": "sha1-+rBEmKEIywe0o/a65ZPjWoUECRQ=",
"range": "bytes=703-1054"
},
"data": {
"checksum": "sha256-fcShKjtj6wR6kgjwToU1J8hU+AGRf1OGZt9jeXJdM0Q=",
"range": "bytes=1055-82406"
},
"name": "openssl-config",
"signature": {
"checksum": "sha1-RT/o4gi2oC/l+6IhikP9/PH5awg=",
"range": "bytes=0-702"
},
"url": "https://packages.wolfi.dev/os/x86_64/openssl-config-3.3.0-r5.apk",
"version": "3.3.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q11DkfNRzraQMj7ue8LFH6VN6d7Bo=",
"control": {
"checksum": "sha1-1DkfNRzraQMj7ue8LFH6VN6d7Bo=",
"range": "bytes=707-1092"
},
"data": {
"checksum": "sha256-c95GJNThldUhfxVSGbchUI0pS4j6h45Yx6JDPXHaAI0=",
"range": "bytes=1093-5915048"
},
"name": "libcrypto3",
"signature": {
"checksum": "sha1-EmjggcTaE4QTKI1FzSom0rXam1c=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypto3-3.3.0-r5.apk",
"version": "3.3.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q15sT5bGF6kgE7DepzZIHCpPpuP70=",
"control": {
"checksum": "sha1-5sT5bGF6kgE7DepzZIHCpPpuP70=",
"range": "bytes=702-1085"
},
"data": {
"checksum": "sha256-fWOAfZYgXO6+yM4Dpo/y7dvV3uxSEhhfO4SUX79TQDw=",
"range": "bytes=1086-1196497"
},
"name": "libssl3",
"signature": {
"checksum": "sha1-4+7eITv9weTmoYBAAyd92WsXS24=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libssl3-3.3.0-r5.apk",
"version": "3.3.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"control": {
"checksum": "sha1-myu18Yt+0lLtpxOyrQ3LKnV6SoI=",
"range": "bytes=698-1216"
},
"data": {
"checksum": "sha256-elcsQDiEgNifO11g4MoJLGo5XJu8wQZaytjIKYxzVjw=",
"range": "bytes=1217-2564165"
},
"name": "krb5-libs",
"signature": {
"checksum": "sha1-NdbRDYVgwMQYQQrqt9GSGuBkjuA=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/krb5-libs-1.21.2-r1.apk",
"version": "1.21.2-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"control": {
"checksum": "sha1-BMcnbxIFejKxlfYLJaX4uo/+X0M=",
"range": "bytes=699-1059"
},
"data": {
"checksum": "sha256-Rp339LV5T4+zr98USK12eoyKGF84NviKlq3jh1AvbQQ=",
"range": "bytes=1060-96440"
},
"name": "fstrm",
"signature": {
"checksum": "sha1-tOY0x5olyX6V9uRtlgxtf4WEhR0=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/fstrm-0.6.1-r1.apk",
"version": "0.6.1-r1"
},
{
"architecture": "x86_64",
"checksum": "Q126C/3voUst+sFakQOGVOKucs6v8=",
"control": {
"checksum": "sha1-26C/3voUst+sFakQOGVOKucs6v8=",
"range": "bytes=698-1076"
},
"data": {
"checksum": "sha256-S2VfC729Glys7iRmR7sX4RoS4LLyNi9KmSzDc8wkKrQ=",
"range": "bytes=1077-277291"
},
"name": "libuv",
"signature": {
"checksum": "sha1-23pSGkhyhlBtbVxNtDXYlWnt+vk=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libuv-1.48.0-r0.apk",
"version": "1.48.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1ybud27/W+hJ0asiUj3hfrXVjcMs=",
"control": {
"checksum": "sha1-ybud27/W+hJ0asiUj3hfrXVjcMs=",
"range": "bytes=698-1081"
},
"data": {
"checksum": "sha256-3uFtBCAT2Gu/AplcYbKYMCuMMC94JLJDNyoWnSMLqjc=",
"range": "bytes=1082-156680"
},
"name": "zlib",
"signature": {
"checksum": "sha1-JYfhgb71ZjFG0VIAKLwOQSlHmlg=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/zlib-1.3.1-r0.apk",
"version": "1.3.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sGD1MEAazAXpfNixX74EpwafGo0=",
"control": {
"checksum": "sha1-sGD1MEAazAXpfNixX74EpwafGo0=",
"range": "bytes=698-1059"
},
"data": {
"checksum": "sha256-s+9m0l/R7hVKQ5YLbU90D2E6DPC2QVTxdjhToMi5iYU=",
"range": "bytes=1060-251831"
},
"name": "libnghttp2-14",
"signature": {
"checksum": "sha1-wOIYtvU72n76UGvbargK2ccZx0E=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libnghttp2-14-1.61.0-r0.apk",
"version": "1.61.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"control": {
"checksum": "sha1-cCNlvL7pVXPEgMJQz7uLXVW0w5g=",
"range": "bytes=697-1073"
},
"data": {
"checksum": "sha256-7m+RnrAOS8ZCnFW/j2P2NcQJxOzfwSjOLYhEZXIwBG8=",
"range": "bytes=1074-114096"
},
"name": "libev",
"signature": {
"checksum": "sha1-PUsxiEtEuEoDpgKP2L36G/X55s0=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libev-4.33-r4.apk",
"version": "4.33-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"control": {
"checksum": "sha1-jyz//Wx+59L1JtSRpS5LPxe5iaM=",
"range": "bytes=708-1084"
},
"data": {
"checksum": "sha256-v6jAIoRu7n3hQJ8nwWCLtvRsszuMGCAEyZm4zUF1cVI=",
"range": "bytes=1085-185893"
},
"name": "libgcc",
"signature": {
"checksum": "sha1-3fVn7jRkfOtxSgpmdey4iJJqQPM=",
"range": "bytes=0-707"
},
"url": "https://packages.wolfi.dev/os/x86_64/libgcc-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1NsUsznaiP7XyU6U/5pssXQgGJgU=",
"control": {
"checksum": "sha1-NsUsznaiP7XyU6U/5pssXQgGJgU=",
"range": "bytes=701-1093"
},
"data": {
"checksum": "sha256-0XrQ++geRWYRUazF23zdsuGVLFkiIDM1FKmAbbz9ojQ=",
"range": "bytes=1094-3156830"
},
"name": "libstdc++",
"signature": {
"checksum": "sha1-Zu2LUNkKQt3BnFU9+4PX0ud8D6Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libstdc++-13.2.0-r5.apk",
"version": "13.2.0-r5"
},
{
"architecture": "x86_64",
"checksum": "Q1EHyaNLx1UadaqJXEC86gtIjZGMM=",
"control": {
"checksum": "sha1-EHyaNLx1UadaqJXEC86gtIjZGMM=",
"range": "bytes=696-1076"
},
"data": {
"checksum": "sha256-+ValBcpIsLeYUFo73SZrUM2vpLGefts7Qx95EPMATaY=",
"range": "bytes=1077-232308"
},
"name": "c-ares",
"signature": {
"checksum": "sha1-OtwgYMiySwl+l6divnnSgQu+QUg=",
"range": "bytes=0-695"
},
"url": "https://packages.wolfi.dev/os/x86_64/c-ares-1.28.1-r0.apk",
"version": "1.28.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1NZCvjmGBZ7soi6T4endRPtDztk4=",
"control": {
"checksum": "sha1-NZCvjmGBZ7soi6T4endRPtDztk4=",
"range": "bytes=698-1162"
},
"data": {
"checksum": "sha256-q79pSkGvnDzz1dHsQceLPqyVC+cFCyWWJB5L2EfkZRc=",
"range": "bytes=1163-2556930"
},
"name": "nghttp2",
"signature": {
"checksum": "sha1-UuOeekThV8UC737772jFTRj0Y50=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-1.61.0-r0.apk",
"version": "1.61.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1O/sL8Kjkxzh39Ffh9gJl+0olkF4=",
"control": {
"checksum": "sha1-O/sL8Kjkxzh39Ffh9gJl+0olkF4=",
"range": "bytes=700-1061"
},
"data": {
"checksum": "sha256-6qS8u1yYrzO+4Ypa+g4zfz3m16/7O/U4wjiRrKl8/vw=",
"range": "bytes=1062-631650"
},
"name": "nghttp2-dev",
"signature": {
"checksum": "sha1-avAz/6snsG86C9jh8Gxa59gs29U=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/nghttp2-dev-1.61.0-r0.apk",
"version": "1.61.0-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1sJOz3InYXKj1qNN3oPm3pb30VO0=",
"control": {
"checksum": "sha1-sJOz3InYXKj1qNN3oPm3pb30VO0=",
"range": "bytes=697-1149"
},
"data": {
"checksum": "sha256-fahwYvY6Lv9AhtEHBsSaoFAoKFWlvbbVC8jYGuRmTcg=",
"range": "bytes=1150-2380016"
},
"name": "xz",
"signature": {
"checksum": "sha1-aQxFIS7BG8u/jlY2JU8oQIEloYw=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/xz-5.4.6-r0.apk",
"version": "5.4.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"control": {
"checksum": "sha1-aNAiDiOAPLkPMJFYq6mpzKq4V18=",
"range": "bytes=699-1084"
},
"data": {
"checksum": "sha256-Wc0u/JyHwxC7ubVFz4UlXEc5URwWiBZm4jNKqVv9LF0=",
"range": "bytes=1085-4698210"
},
"name": "libxml2",
"signature": {
"checksum": "sha1-v7pbNfh/TdC3LzRewdC3GeA9rec=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxml2-2.12.6-r0.apk",
"version": "2.12.6-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1l9z4OGVfdVISNbyGQdXlz2GPchM=",
"control": {
"checksum": "sha1-l9z4OGVfdVISNbyGQdXlz2GPchM=",
"range": "bytes=695-1222"
},
"data": {
"checksum": "sha256-0Z+mq/0A1P+F5KIZKnsYpg8Eqb3GDRT7VDrZlTEg+4Y=",
"range": "bytes=1223-3863194"
},
"name": "bind-libs",
"signature": {
"checksum": "sha1-YX2+1oZh/hXHVjZriSnJZQzpifg=",
"range": "bytes=0-694"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-libs-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"control": {
"checksum": "sha1-Xb5w/MUeHFBeLgnHBmG7dqAMxzQ=",
"range": "bytes=705-1217"
},
"data": {
"checksum": "sha256-/0zOh1KQW58NOuJgauDOdqJA4G4g0p6jPUOP45HN/f8=",
"range": "bytes=1218-892798"
},
"name": "bind-tools",
"signature": {
"checksum": "sha1-3GgaViNXeX4dd75pxgwR8yYgov0=",
"range": "bytes=0-704"
},
"url": "https://packages.wolfi.dev/os/x86_64/bind-tools-9.18.25-r0.apk",
"version": "9.18.25-r0"
},
{
"architecture": "x86_64",
"checksum": "Q11cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"control": {
"checksum": "sha1-1cs1/Vkyp8KEwqtqZvPrB+Mfb8A=",
"range": "bytes=698-1093"
},
"data": {
"checksum": "sha256-t284K9/cZQaQMy4y4nYXMIjKUTbyaBa/QnUj0cYmTNk=",
"range": "bytes=1094-234977"
},
"name": "libxcrypt",
"signature": {
"checksum": "sha1-hhR4Puw7nMj2H9OzUMTKhK1/7N0=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libxcrypt-4.4.36-r4.apk",
"version": "4.4.36-r4"
},
{
"architecture": "x86_64",
"checksum": "Q1szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"control": {
"checksum": "sha1-szp02tM1WkRUzhOGBkFjl6dA5pQ=",
"range": "bytes=698-1101"
},
"data": {
"checksum": "sha256-hrc/6rvJR5nb97Gu5Hep8419+WyFmd7maV78ni7zQAc=",
"range": "bytes=1102-21604"
},
"name": "libcrypt1",
"signature": {
"checksum": "sha1-Jk/8hSLRyZ7scdep1XfbpKABePY=",
"range": "bytes=0-697"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcrypt1-2.39-r1.apk",
"version": "2.39-r1"
},
{
"architecture": "x86_64",
"checksum": "Q17FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"control": {
"checksum": "sha1-7FDk2/BvxV3n5UBi4rz7m8aR1Wc=",
"range": "bytes=701-1208"
},
"data": {
"checksum": "sha256-67DYE+o9zQIS2KUyXkBN8SAEkWVh2+isnGTn78VdLMg=",
"range": "bytes=1209-636015"
},
"name": "busybox",
"signature": {
"checksum": "sha1-70uMRez2BMN2clrT3wFBWsR5Gew=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/busybox-1.36.1-r7.apk",
"version": "1.36.1-r7"
},
{
"architecture": "x86_64",
"checksum": "Q1rjerqZWEgOAfcADFOLkaVfXxK1s=",
"control": {
"checksum": "sha1-rjerqZWEgOAfcADFOLkaVfXxK1s=",
"range": "bytes=701-1087"
},
"data": {
"checksum": "sha256-0VNIVmBgUcGMk7bk8Pou0Dj9goU8aSNSzT6bgHz1LuI=",
"range": "bytes=1088-41640439"
},
"name": "caddy",
"signature": {
"checksum": "sha1-I4LZ7o/JV8NiBwaS/ZoSZBrsV9k=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/caddy-2.7.6-r6.apk",
"version": "2.7.6-r6"
},
{
"architecture": "x86_64",
"checksum": "Q1f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"control": {
"checksum": "sha1-f9ldLw5Jdbm9CkZfsDWXP2YaQWE=",
"range": "bytes=706-1103"
},
"data": {
"checksum": "sha256-ttIYvsu5Vp2YYKv/C7vK1hFUI8kNsOJxD65/SsOtWvQ=",
"range": "bytes=1104-2862070"
},
"name": "libunistring",
"signature": {
"checksum": "sha1-IwR2lnVv+Ixi8qtznw+ruuV9OVw=",
"range": "bytes=0-705"
},
"url": "https://packages.wolfi.dev/os/x86_64/libunistring-1.2-r0.apk",
"version": "1.2-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1tBy70+JqCVQbecHMDxN0U9PKn8k=",
"control": {
"checksum": "sha1-tBy70+JqCVQbecHMDxN0U9PKn8k=",
"range": "bytes=697-1102"
},
"data": {
"checksum": "sha256-xFjkADRrilqBaMgedKfRkaUGOqAlLDunZnmM/nggwDo=",
"range": "bytes=1103-411419"
},
"name": "libidn2",
"signature": {
"checksum": "sha1-AkpnAB73nCuJM4BJIXJsWn2/urk=",
"range": "bytes=0-696"
},
"url": "https://packages.wolfi.dev/os/x86_64/libidn2-2.3.7-r0.apk",
"version": "2.3.7-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"control": {
"checksum": "sha1-QobDOHNHcnrYAlkCuVI1Te8I5V0=",
"range": "bytes=702-1082"
},
"data": {
"checksum": "sha256-cEuUD1tNXYeUHPC7dK9BSHOx8vt7IIRBGd181Sd0RXA=",
"range": "bytes=1083-114314"
},
"name": "libpsl",
"signature": {
"checksum": "sha1-H2Bp5J4UMCXPQlfvEiFxLXG5rEY=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/libpsl-0.21.5-r0.apk",
"version": "0.21.5-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1LcDEPPjJrWwhueUvesRr4kLyGPI=",
"control": {
"checksum": "sha1-LcDEPPjJrWwhueUvesRr4kLyGPI=",
"range": "bytes=707-1052"
},
"data": {
"checksum": "sha256-xtIiQnSjJGdZnAzaBoJD6q3TbCpnAwTfD9SvbafkaP0=",
"range": "bytes=1053-174068"
},
"name": "libbrotlicommon1",
"signature": {
"checksum": "sha1-kcyKhs8jgdpGEEUhbyXHPJQpvyM=",
"range": "bytes=0-706"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlicommon1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q10jZlLouHAzMUvZYphGGNjOoZ1ug=",
"control": {
"checksum": "sha1-0jZlLouHAzMUvZYphGGNjOoZ1ug=",
"range": "bytes=701-1051"
},
"data": {
"checksum": "sha256-nx7lapEgf5fd4ZrtBxqXtAWE0tEVndBBEwXOUbhY2OA=",
"range": "bytes=1052-81979"
},
"name": "libbrotlidec1",
"signature": {
"checksum": "sha1-iUdAt3okR6P8rJ4sNv4yjC0I8Ys=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libbrotlidec1-1.1.0-r1.apk",
"version": "1.1.0-r1"
},
{
"architecture": "x86_64",
"checksum": "Q1CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"control": {
"checksum": "sha1-CC3jnItQWZ4ya5EB/TNDLOICnRc=",
"range": "bytes=701-1140"
},
"data": {
"checksum": "sha256-2EP9UQKOVph+9hElnh20s8ViX126cAnPyNI+IF2pQ4Y=",
"range": "bytes=1141-838149"
},
"name": "libcurl-openssl4",
"signature": {
"checksum": "sha1-IxMuIpRYevSLukva0eWmB5RkhMY=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcurl-openssl4-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"control": {
"checksum": "sha1-DzKkXRny9JZJvzjFt3jIuvkDP8E=",
"range": "bytes=700-1101"
},
"data": {
"checksum": "sha256-l1iebyEPmteOEBcPDwPzstpqs9SMvCn8PqlvRU3O7jk=",
"range": "bytes=1102-351141"
},
"name": "curl",
"signature": {
"checksum": "sha1-iVKgcLEjgrpj4c2TrRzHznPaWXA=",
"range": "bytes=0-699"
},
"url": "https://packages.wolfi.dev/os/x86_64/curl-8.7.1-r0.apk",
"version": "8.7.1-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1WFcC+5nIKxes4WalzezLkE0eiaA=",
"control": {
"checksum": "sha1-WFcC+5nIKxes4WalzezLkE0eiaA=",
"range": "bytes=701-1100"
},
"data": {
"checksum": "sha256-1gApj8E5H1GQ+QWvDVn5a6Uz/CrXKYa9BjO/ZTSXDtY=",
"range": "bytes=1101-109951"
},
"name": "libcap",
"signature": {
"checksum": "sha1-Kxo8IwTiaZg7IY+RdaCWeaEEP9Q=",
"range": "bytes=0-700"
},
"url": "https://packages.wolfi.dev/os/x86_64/libcap-2.69-r3.apk",
"version": "2.69-r3"
},
{
"architecture": "x86_64",
"checksum": "Q1Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"control": {
"checksum": "sha1-Qw/3QqSUVfXMObQRB1Q/OR2E2Pk=",
"range": "bytes=660-1019"
},
"data": {
"checksum": "sha256-Acu4swCJY4zVqLGpjN7PJzQ6juyZajEZ/xlJeahCk4k=",
"range": "bytes=1020-173298"
},
"name": "mailcap",
"signature": {
"checksum": "sha1-fFIHN05okWjQyXdVrXiU2HpqEC4=",
"range": "bytes=0-659"
},
"url": "https://packages.wolfi.dev/os/x86_64/mailcap-2.1.54-r0.apk",
"version": "2.1.54-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1lvoD8CoCRqulbibjC3gSGuEe8K0=",
"control": {
"checksum": "sha1-lvoD8CoCRqulbibjC3gSGuEe8K0=",
"range": "bytes=702-1035"
},
"data": {
"checksum": "sha256-YB3jK9thvtrl7FCbwBPhBgHnz6ncykVxex/dHC4wYc8=",
"range": "bytes=1036-3022935"
},
"name": "tzdata",
"signature": {
"checksum": "sha1-AJ7WqmxNNMiSUQ8WuwjXg5Y23Gw=",
"range": "bytes=0-701"
},
"url": "https://packages.wolfi.dev/os/x86_64/tzdata-2024a-r0.apk",
"version": "2024a-r0"
},
{
"architecture": "x86_64",
"checksum": "Q1JVK/s+yGDiDotAujuHcQwzrchvI=",
"control": {
"checksum": "sha1-JVK/s+yGDiDotAujuHcQwzrchvI=",
"range": "bytes=699-1099"
},
"data": {
"checksum": "sha256-6MWjAN767fVREf1xZ18eV4QLzKBUdZusnhj7ljPZuhU=",
"range": "bytes=1100-786256"
},
"name": "wget",
"signature": {
"checksum": "sha1-cJ/swsh0XVO9ISogqXDo8oBBG7M=",
"range": "bytes=0-698"
},
"url": "https://packages.wolfi.dev/os/x86_64/wget-1.24.5-r0.apk",
"version": "1.24.5-r0"
}
],
"repositories": [
{
"architecture": "x86_64",
"name": "packages.wolfi.dev/os/x86_64",
"url": "https://packages.wolfi.dev/os/x86_64/APKINDEX.tar.gz"
},
{
"architecture": "x86_64",
"name": "@sourcegraph https://packages.sgdev.org/main/x86_64",
"url": "@sourcegraph https://packages.sgdev.org/main/x86_64/APKINDEX.tar.gz"
}
]
},
"version": "v1"
}

44
wolfi-images/caddy.yaml Normal file
View File

@ -0,0 +1,44 @@
include: ./sourcegraph-base.yaml
contents:
packages:
# Caddy packages
- caddy
- libcap
- mailcap
environment:
XDG_CONFIG_HOME: /config
XDG_DATA_HOME: /data
work-dir: /srv
paths:
- path: /config/caddy
type: directory
uid: 0
gid: 0
permissions: 0o755
- path: /data/caddy
type: directory
uid: 0
gid: 0
permissions: 0o755
- path: /etc/caddy
type: directory
uid: 0
gid: 0
permissions: 0o755
- path: /usr/share/caddy
type: directory
uid: 0
gid: 0
permissions: 0o755
annotations:
org.opencontainers.image.url: https://sourcegraph.com/
org.opencontainers.image.source: https://github.com/sourcegraph/sourcegraph/
org.opencontainers.image.documentation: https://sourcegraph.com/docs/
org.opencontainers.image.title: Caddy
org.opencontainers.image.description: "a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go"
org.opencontainers.image.licenses: "Apache-2.0"

View File

@ -40,6 +40,9 @@ def apko_translate_locks():
# See the following commit to see what is being removed from WORKSPACE by this repository rule:
# https://github.com/sourcegraph/sourcegraph/pull/60785/commits/041fb7a177c8f9004a973306b2e045a25e64fc68
def _wolfi_lockfiles(rctx):
# Used to invalidate this repository when any lockfiles change.
rctx.watch_tree(str(rctx.workspace_root) + "/wolfi-images")
result = rctx.execute(["ls", str(rctx.workspace_root) + "/wolfi-images"])
if result.return_code != 0:
fail("failed to list wolfi-images:", result.stderr)
@ -55,10 +58,6 @@ def _wolfi_lockfiles(rctx):
lockfiles.append(file)
# In bazel 7.1.0, we can replace this with `rctx.watch(file)` (they behave identically though).
# Used to invalidate this repository when any of the lockfiles change.
rctx.path(Label(file))
lockname = file.partition(".")[0].replace("-", "_")
# because load aliases and function calls cant be in quotes, we cant use templating with list comprehensions/for loops like with