नग्नेक्स डॉकर कंटेनर तुरंत बंद हो जाता है

मैं कर रहा हूँ शुरू कर दिया पाने के लिए पता करने के लिए गोदी श्रमिक और nginx में डोकर. मैं अपनी खुद की कस्टम स्थिर फ़ाइलों और अपने स्वयं के एनजीआईएनएक्स का उपयोग करना चाहता हूं । कॉन्फ, इसलिए मैंने एक डॉकर फ़ाइल बनाई है:

FROM nginxRUN rm /etc/nginx/nginx.confCOPY /nginx.conf /etc/nginx/nginx.confCOPY / /usr/share/nginx/html# Expose portsEXPOSE 80

और मेरे nginx.conf:

#user  nobody;worker_processes  auto;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"'                       '$server_name to: $upstream_addr: $request';    access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    server {        listen       8080;        server_name  127.0.0.1;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;            try_files $uri /index.html;            include       mime.types;                   }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

मैं इसके साथ निर्माण कर रहा हूं:

docker build --no-cache -t nginx-custom .

और इसके साथ चल रहा है:

docker run -d -p 8080:80 --name webserver nginx-custom

लेकिन यह बनाता है, और फिर चलता है, लेकिन अगर मैं जांच करता हूं तो तुरंत रुक जाता है

docker ps -a

मैं देख सकता हूं कि यह 1 सेकंड पहले बाहर निकल गया है । मैंने उपयोग करने की कोशिश की CMD /usr/sbin/nginx -g "daemon off;" या deamon off; में nginx conf, या का उपयोग करें CMD ["nginx", "-g", "daemon off;"] कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, यह रन के ठीक बाद बाहर निकलता है ।

आपको अपने नग्नेक्स लॉग के लिए सही पथ को परिभाषित करना होगा ।

/var/log/nginx/error.log और /var/log/nginx/access.log

इसे नीचे दिए गए आदेश के साथ चलाने का प्रयास करें:-

docker run -d -p 8080:80 --name webserver -it nginx-custom /bin/bash

जब मैंने कंटेनर को इंटरैक्टिव मोड में चलाने की कोशिश की तो मुझे मिला:

[एमर्ग] 1#1: ओपन () " / आदि/एनजीआईएनएक्स/लॉग / एक्सेस । लॉग " विफल (2: ऐसी कोई फ़ाइल या निर्देशिका नहीं) nginx: [emerg] खुला() "/आदि/nginx/लॉग/का उपयोग.लॉग " विफल (2: ऐसी कोई फ़ाइल या निर्देशिका नहीं)
फिर मैंने जोड़ा:
रन mkdir -p /आदि/nginx/लॉग/ और यह काम करता है

जहां nginx.आपके पीसी में स्थित कॉन्फ फाइल?

यदि यह उसी निर्देशिका में स्थित है तो आपको कमांड को बदलना चाहिए

'कॉपी ।/nginx.conf /आदि/nginx/nginx.conf`

के nginx.कॉन्फ डॉकरफाइल के बगल में स्थित है, मैंने कॉपी बदलने की कोशिश की, लेकिन फिर भी बाहर निकलता है

अपने कॉन्फ़िगरेशन को डीबग करने के लिए, आप कंटेनर को इंटरैक्टिव मोड में चला सकते हैं ।

'डॉकर रन-इट-पी 8080: 80-नाम वेब सर्वर एनजीआईएनएक्स-कस्टम`

फिर कंटेनर के अंदर, आप एनजीआईएनएक्स-टी कमांड के साथ अपने एनजीआईएनएक्स कॉन्फ़िगरेशन की जांच कर सकते हैं

तो आपका लॉग पथ गलत है
आप कर सकते हैं इसे बनाने में डोकर फ़ाइल या डिफ़ॉल्ट छोड़ /var/log/nginx/त्रुटि है । लॉग /var/log/nginx/का उपयोग.लॉग