fix(core): update
This commit is contained in:
parent
8a70aa4c49
commit
272a82e06a
@ -10,6 +10,14 @@ before_script:
|
||||
- apk add --no-cache libgcc libstdc++ gnupg nodejs nodejs-npm
|
||||
- apk add --no-cache krb5-libs
|
||||
- update-ca-certificates
|
||||
- cp ./stack-fix.c /lib/
|
||||
- set -ex \
|
||||
&& apk add --no-cache --virtual .build-deps build-base \
|
||||
&& gcc -shared -fPIC /lib/stack-fix.c -o /lib/stack-fix.so \
|
||||
&& apk del .build-deps
|
||||
|
||||
# export the environment variable of LD_PRELOAD
|
||||
ENV LD_PRELOAD /lib/stack-fix.so
|
||||
- npm config set unsafe-perm true
|
||||
- npm install -g @shipzone/npmci
|
||||
- npmci npm prepare
|
||||
|
32
stack-fix.c
Normal file
32
stack-fix.c
Normal file
@ -0,0 +1,32 @@
|
||||
#include <dlfcn.h>
|
||||
#include <pthread.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// THIS IS TO AVOID A SIGFAULT WHEN RUNNING python3.6 manage.py runserver
|
||||
// This should be fixed at some point by Alpine and/or Python
|
||||
// Check this issue for more info
|
||||
// https://github.com/docker-library/python/issues/211
|
||||
typedef int (*func_t)(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
|
||||
|
||||
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) {
|
||||
|
||||
pthread_attr_t local;
|
||||
int used = 0, ret;
|
||||
|
||||
if (!attr) {
|
||||
used = 1;
|
||||
pthread_attr_init(&local);
|
||||
attr = &local;
|
||||
}
|
||||
pthread_attr_setstacksize((void*)attr, 2 * 1024 * 1024); // 2 MB
|
||||
|
||||
func_t orig = (func_t)dlsym(RTLD_NEXT, "pthread_create");
|
||||
|
||||
ret = orig(thread, attr, start_routine, arg);
|
||||
|
||||
if (used) {
|
||||
pthread_attr_destroy(&local);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
Loading…
Reference in New Issue
Block a user