2017-07-09 12 views
0

Ich versuche, eine Docker von einer Gabel zu bauen, und ich erhalte die folgende Fehlermeldung, wenn docker build ./ ausführen:Fehler beim Aufbau nginx Docker

cc1: all warnings being treated as errors 
make[1]: *** [objs/src/event/ngx_event_openssl.o] Error 1 
objs/Makefile:748: recipe for target 'objs/src/event/ngx_event_openssl.o' failed 
make[1]: Leaving directory '/tmp/nginx/nginx-1.8.0' 
make: *** [install] Error 2 

On installieren wir

apt-get -y install libpcre3-dev zlib1g-dev libssl-dev openssl build-essential wget 

ich kann‘laufen Ich finde diesen Fehler bei Google. Der vollständige Fehler als Referenz, da ich nicht die genaue Fehlerreferenz herauszufinden, ich für die Forschung benötigen:

src/event/ngx_event_openssl.c: In function 'ngx_ssl_init': 
src/event/ngx_event_openssl.c:112:5: error: 'OPENSSL_config' is deprecated [-Werror=deprecated-declarations] 
    OPENSSL_config(NULL); 
    ^~~~~~~~~~~~~~ 
In file included from /usr/include/openssl/ct.h:13:0, 
       from /usr/include/openssl/ssl.h:61, 
       from src/event/ngx_event_openssl.h:15, 
       from src/core/ngx_core.h:80, 
       from src/event/ngx_event_openssl.c:9: 
/usr/include/openssl/conf.h:92:1: note: declared here 
DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) 
^ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_rsa512_key_callback': 
src/event/ngx_event_openssl.c:753:9: error: 'RSA_generate_key' is deprecated [-Werror=deprecated-declarations] 
     key = RSA_generate_key(512, RSA_F4, NULL, NULL); 
     ^~~ 
In file included from /usr/include/openssl/rsa.h:13:0, 
       from /usr/include/openssl/x509.h:31, 
       from /usr/include/openssl/ssl.h:50, 
       from src/event/ngx_event_openssl.h:15, 
       from src/core/ngx_core.h:80, 
       from src/event/ngx_event_openssl.c:9: 
/usr/include/openssl/rsa.h:193:1: note: declared here 
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void 
^ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_dhparam': 
src/event/ngx_event_openssl.c:943:11: error: dereferencing pointer to incomplete type 'DH {aka struct dh_st}' 
     dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL); 
      ^~ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_handshake': 
src/event/ngx_event_openssl.c:1164:31: error: dereferencing pointer to incomplete type 'SSL {aka struct ssl_st}' 
     if (c->ssl->connection->s3) { 
           ^~ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_connection_error': 
src/event/ngx_event_openssl.c:1913:21: error: 'SSL_R_NO_CIPHERS_PASSED' undeclared (first use in this function) 
      || n == SSL_R_NO_CIPHERS_PASSED       /* 182 */ 
        ^~~~~~~~~~~~~~~~~~~~~~~ 
src/event/ngx_event_openssl.c:1913:21: note: each undeclared identifier is reported only once for each function it appears in 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_session_cache': 
src/event/ngx_event_openssl.c:2107:43: error: passing argument 2 of 'SSL_CTX_sess_set_get_cb' from incompatible pointer type [-Werror=incompatible-pointer-types] 
     SSL_CTX_sess_set_get_cb(ssl->ctx, ngx_ssl_get_cached_session); 
              ^~~~~~~~~~~~~~~~~~~~~~~~~~ 
In file included from src/event/ngx_event_openssl.h:15:0, 
       from src/core/ngx_core.h:80, 
       from src/event/ngx_event_openssl.c:9: 
/usr/include/openssl/ssl.h:637:6: note: expected 'SSL_SESSION * (*)(struct ssl_st *, const unsigned char *, int, int *) {aka struct ssl_session_st * (*)(struct ssl_st *, const unsigned char *, int, int *)}' but argument is of type 'SSL_SESSION * (*)(SSL *, u_char *, int, int *) {aka struct ssl_session_st * (*)(struct ssl_st *, unsigned char *, int, int *)}' 
void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, 
     ^~~~~~~~~~~~~~~~~~~~~~~ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_session_id_context': 
src/event/ngx_event_openssl.c:2129:27: error: storage size of 'md' isn't known 
    EVP_MD_CTX   md; 
          ^~ 
src/event/ngx_event_openssl.c:2195:5: error: implicit declaration of function 'EVP_MD_CTX_cleanup' [-Werror=implicit-function-declaration] 
    EVP_MD_CTX_cleanup(&md); 
    ^~~~~~~~~~~~~~~~~~ 
src/event/ngx_event_openssl.c: In function 'ngx_ssl_session_ticket_key_callback': 
src/event/ngx_event_openssl.c:2864:9: error: 'RAND_pseudo_bytes' is deprecated [-Werror=deprecated-declarations] 
     RAND_pseudo_bytes(iv, 16); 
     ^~~~~~~~~~~~~~~~~ 
In file included from /usr/include/openssl/engine.h:19:0, 
       from src/event/ngx_event_openssl.h:22, 
       from src/core/ngx_core.h:80, 
       from src/event/ngx_event_openssl.c:9: 
/usr/include/openssl/rand.h:47:1: note: declared here 
DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) 
^ 
cc1: all warnings being treated as errors 
make[1]: *** [objs/src/event/ngx_event_openssl.o] Error 1 
objs/Makefile:748: recipe for target 'objs/src/event/ngx_event_openssl.o' failed 
make[1]: Leaving directory '/tmp/nginx/nginx-1.8.0' 
make: *** [install] Error 2 

Dies ist die Docker Gabel Ich bin mit https://github.com/meteorhacks/mup-frontend-server

Antwort

1

Sie sind hier verschiedene Fehler und Warnungen bekommen, aber sie sind nicht wirklich über Docker oder OpenSSL. Wenn wir die unwichtigen Informationen entfernen, sind hier die Probleme, denen Sie begegnen.

Der Kern des Problems hier ist wahrscheinlich, dass Sie eine ältere Version von Nginx in diesem Projekt verwenden. Aus der GitHub-Repository zeigen Sie, in install-nginx.sh:

NGINX_VERSION=1.8.0 

Die aktuelle Fern Version von Nginx 1.13.2 ist. Ich habe die changelogs für Nginx nicht durchgekämmt, aber aufgrund der Fehler, die Sie erhalten, ist es wahrscheinlich, dass OpenSSL zwischen den Versionen 1.8 und den aktuellen Releases verschiedene Funktionen veraltet hat, auf denen Nginx 1.8 basierte. Höchstwahrscheinlich kann dies durch den Wechsel zu einer neuen Version von Nginx gelöst werden.

Zum jetzigen Zeitpunkt ist 1.13.2 die aktuelle Hauptlinie und 1.12.0 ist die aktuelle stabil. Einer davon könnte besser funktionieren. Ob du das einfach fallen lassen kannst, kann ich nicht sagen. Möglicherweise müssen Sie etwas in den Build-Skripten oder der nginx-Konfiguration ändern, damit eine neuere Version ordnungsgemäß funktioniert.

+0

Danke für die ausführliche Antwort Dan. Werde das untersuchen. – Allreadyhome

+0

Das Ändern des Nginx auf Version 1.12.0 funktionierte wie ein Zauber. – Allreadyhome

0

Sie erhalten diesen Fehler, weil Ihre Nginx-Version SSL 1.1.0 nicht unterstützt. Aktualisieren Sie entweder die NGINX-Version oder verwenden Sie SSL 1.0.2.