não pode executar o nginx no linux alpino (docker)

2

Bem, eu configurei um contêiner de docker linux alpino com nginx nele

( apk add nginx )

Agora estou tentando executar o nginx. Com o comando simples nginx Isso retorna o seguinte erro:

nginx: [emerg] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)

O que está causando isso? - Mesmo como root eu não tenho permissão para abrir /run/ , então eu não posso realmente verificar as coisas. Meu nginx.conf é:

#
events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    #include /etc/nginx/mime.types;
    #default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";

    ##
    # Virtual Host Configs
    ##

    #include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;
}

Claro que nenhum servidor está incluído, mas espero que seja capaz de executar e nunca servir nada. - Mas, mesmo se eu permitir a inclusão (que redireciona para o html padrão na página, que também copiei no docker), o mesmo erro ocorre.

    
por paul23 22.03.2018 / 00:02

3 respostas

1

O diretório /run/nginx não existe nos últimos contêineres alpinos.

Você pode criar o diretório ou alterar o local do arquivo PID.

Crie o diretório em seu Dockerfile:

RUN mkdir -p /run/nginx

Ou altere a localização do arquivo PID:

nginx -g 'pid /tmp/nginx.pid'
    
por 22.03.2018 / 03:19
1

Não há necessidade real de criar seu próprio contêiner docker nginx a partir da imagem base alpina quando houver uma imagem docker nginx oficial do Alpine no Docker Hub.

Aqui está um Dockerfile da imagem docker upstream do nginx.

Para extrair diretamente do hub do Docker, use:

$ docker pull nginx:alpine

Você pode modificar seu Dockerfile com suas variáveis personalizadas e construir sua própria imagem.

$ docker build -t nginx-alpine
    
por 01.04.2018 / 10:26
1

Alpine linux não tem run / nginx / nginx.pid. Tente adicionar isso no arquivo top nginx.conf.

pid /run/nginx.pid;

    
por 06.07.2018 / 12:25