This commit is contained in:
commit
853378b46d
15
.woodpecker.yml
Normal file
15
.woodpecker.yml
Normal file
@ -0,0 +1,15 @@
|
||||
steps:
|
||||
docker:
|
||||
image: docker-public.nyyu.dev/nyyu/plugin-kaniko
|
||||
pull: true
|
||||
settings:
|
||||
username:
|
||||
from_secret: registry_username
|
||||
password:
|
||||
from_secret: registry_password
|
||||
repo: ${CI_REPO_OWNER}/numcpu_override
|
||||
registry: ${DOCKER_REGISTRY}
|
||||
tags: alpine
|
||||
when:
|
||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||
event: [push, manual, tag]
|
9
Dockerfile
Normal file
9
Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM alpine:3.18
|
||||
COPY . .
|
||||
RUN apk add --no-cache gcc musl-dev && \
|
||||
gcc -shared -fPIC -Wall -Wextra -Werror numcpu_override.c -o numcpu_override.so -ldl
|
||||
|
||||
FROM alpine:3.18
|
||||
COPY /copy.sh /
|
||||
COPY --from=0 numcpu_override.so /
|
||||
ENTRYPOINT ["/copy.sh"]
|
3
copy.sh
Executable file
3
copy.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo "copy '$(ls *.so)' to /_libs/"
|
||||
cp -f *.so /_libs/
|
32
numcpu_override.c
Normal file
32
numcpu_override.c
Normal file
@ -0,0 +1,32 @@
|
||||
#define _GNU_SOURCE
|
||||
#include <dlfcn.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
typedef long (*orig_sysconf_f_type)(int name);
|
||||
|
||||
long sysconf(int name) {
|
||||
orig_sysconf_f_type orig;
|
||||
orig = (orig_sysconf_f_type)dlsym(RTLD_NEXT, "sysconf");
|
||||
|
||||
if (name != _SC_NPROCESSORS_CONF && name != _SC_NPROCESSORS_ONLN) {
|
||||
return orig(name);
|
||||
}
|
||||
|
||||
printf("Overriding call sysconf %d\n", name);
|
||||
|
||||
long numcpus = 0;
|
||||
char *env = getenv("NUMCPUS");
|
||||
printf("Env NUMCPUS %s\n", env);
|
||||
if (env != NULL && strlen(env) > 0) {
|
||||
numcpus = strtol(env, NULL, 10);
|
||||
}
|
||||
if (numcpus == 0) {
|
||||
numcpus = orig(name);
|
||||
}
|
||||
printf("Return %ld\n", numcpus);
|
||||
fflush(stdout);
|
||||
return numcpus;
|
||||
}
|
Loading…
Reference in New Issue
Block a user