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 libgcc libstdc++ gnupg nodejs nodejs-npm
|
||||||
- apk add --no-cache krb5-libs
|
- apk add --no-cache krb5-libs
|
||||||
- update-ca-certificates
|
- 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 config set unsafe-perm true
|
||||||
- npm install -g @shipzone/npmci
|
- npm install -g @shipzone/npmci
|
||||||
- npmci npm prepare
|
- 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