Compare commits

...

1 Commits

Author SHA1 Message Date
ed01a19d17 aklsjdfasdj
alksdfjlaksj
2025-01-13 15:38:09 +03:00
3 changed files with 77 additions and 2 deletions

View File

@ -0,0 +1 @@
926

View File

@ -7,10 +7,83 @@ LABEL org.opencontainers.image.title="pause" \
org.opencontainers.image.licenses="GPLv2" \ org.opencontainers.image.licenses="GPLv2" \
org.opencontainers.image.vendor="ALT Linux Team" org.opencontainers.image.vendor="ALT Linux Team"
{{ install_packages("kubernetes-pause") }} RUN cat > pause.c <<EOF
/*
Copyright 2016 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#define STRINGIFY(x) #x
#define VERSION_STRING(x) STRINGIFY(x)
#ifndef VERSION
#define VERSION HEAD
#endif
static void sigdown(int signo) {
psignal(signo, "Shutting down, got signal");
exit(0);
}
static void sigreap(int signo) {
while (waitpid(-1, NULL, WNOHANG) > 0)
;
}
int main(int argc, char **argv) {
int i;
for (i = 1; i < argc; ++i) {
if (!strcasecmp(argv[i], "-v")) {
printf("pause.c %s\n", VERSION_STRING(VERSION));
return 0;
}
}
if (getpid() != 1)
/* Not an error because pause sees use outside of infra containers. */
fprintf(stderr, "Warning: pause should be the first process\n");
if (sigaction(SIGINT, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0)
return 1;
if (sigaction(SIGTERM, &(struct sigaction){.sa_handler = sigdown}, NULL) < 0)
return 2;
if (sigaction(SIGCHLD, &(struct sigaction){.sa_handler = sigreap,
.sa_flags = SA_NOCLDSTOP},
NULL) < 0)
return 3;
for (;;)
pause();
fprintf(stderr, "Error: infinite loop terminated\n");
return 42;
}
EOF
{{ install_packages("gcc", "glibc-devel-static") }}
RUN gcc $(rpm --eval %optflags) -static -DVERSION=3.9 pause.c -o pause
FROM scratch FROM scratch
COPY --from=installer /usr/bin/kubernetes-pause /pause COPY --from=installer /pause /pause
ENTRYPOINT ["/pause"] ENTRYPOINT ["/pause"]

View File

@ -1,5 +1,6 @@
--- ---
is_versioned: true is_versioned: true
version_template: "3.9"
source_packages: source_packages:
- kubernetes-pause - kubernetes-pause
... ...