не удается запустить nginx в alpine linux (docker)

Ну я создал alpine Linux docker контейнер с nginx на нем

(apk add nginx)

теперь я пытаюсь запустить nginx. С помощью простой команды nginx Это возвращает следующее сообщение об ошибке:

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

что вызывает это? - Даже как root у меня нет разрешения на открытие /run/ так что я не могу проверить вещи. Мой палец.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/*;
}

конечно, сервер не включен, но я ожидаю, что он сможет работать и просто никогда не будет служить что угодно. - Но даже если я включаю включение (которое перенаправляет на html по умолчанию на страницу, которую я также скопировал в docker), происходит та же ошибка.

5
задан Drakonoved
источник

3 ответов

/run/nginx каталог не существует в последних контейнерах alpine.

вы можете либо создать каталог, либо изменить расположение файла PID.

создайте каталог в Dockerfile:

RUN mkdir -p /run/nginx

или измените расположение файла PID:

nginx -g 'pid /tmp/nginx.pid'
1
отвечен ewatt 2018-03-22 02:19:38
источник

нет реальной необходимости создавать свой собственный контейнер nginx docker из базового образа alpine, когда есть официальный, Alpine nginx docker image на Docker Hub.

здесь Dockerfile из образа nginx upstream docker.

чтобы вытащить его непосредственно из концентратора Docker, используйте:

$ docker pull nginx:alpine

Вы можете изменить его Dockerfile с помощью пользовательских переменных и создать свой собственный образ.

$ docker build -t nginx-alpine
1
отвечен Ben Njeri 2018-04-01 08:26:47
источник

Alpine linux не имеет файла/nginx/nginx.ПИД. Попробуйте добавить это на верхнем nginx.файл conf.

пид /работа/web-сервера nginx.pid;

1
отвечен Milen John Thomas 2018-07-06 10:44:35
источник

Другие вопросы alpine-linux docker nginx