не может использовать NGINX в CentOS7

#php #docker #nginx #docker-compose #dockerfile

#php #docker #nginx #docker-compose #dockerfile

Вопрос:

можете ли вы помочь мне с этим?

Я пытаюсь создать контейнер с CentOS 7 и запустить на нем nginx и PHP. это мой файл dockerfile:

 FROM remote-host
COPY ./conf/nginx.repo /etc/yum.repos.d/nginx.repo
RUN                                                                          
  yum -y install nginx-1.12.2 --enablerepo=nginx                  amp;amp; 
  yum -y install https://repo.ius.io/ius-release-el7.rpm                  amp;amp; 
  yum -y install                                                             
    php71u-fpm                                                               
    php71u-cli                                                               
    php71u-mysqlnd                                                           
    php71u-soap                                                              
    php71u-xml                                                               
    php71u-zip                                                               
    php71u-json                                                              
    php71u-mcrypt                                                            
    php71u-mbstring                                                          
    php71u-zip                                                               
    php71u-gd                                                                
     --enablerepo=ius-archive amp;amp; yum clean all
EXPOSE 80 443
VOLUME /var/www/html /var/log/nginx /var/log/php-fpm /var/lib/php-fpm
COPY ./conf/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./bin/start.sh /start.sh
RUN chmod  x /start.sh
CMD /start.sh
  

но когда docker начинает создавать его, появляется эта ошибка:

 Building web
Step 1/9 : FROM remote-host
 ---> 678df95b4f1b
Step 2/9 : COPY ./conf/nginx.repo /etc/yum.repos.d/nginx.repo
 ---> Using cache
 ---> 2846848bf7b4
Step 3/9 : RUN                                                                            yum -y install nginx-1.12.2 --enablerepo=nginx                  amp;amp;   yum -y install https://repo.ius.io/ius-release-el7.rpm                  amp;amp;   yum -y install                                                                 php71u-fpm                                                                   php71u-cli                                                                   php71u-mysqlnd                                                               php71u-soap                                                                  php71u-xml                                                                   php71u-zip                                                                   php71u-json                                                                  php71u-mcrypt                                                                php71u-mbstring                                                              php71u-zip                                                                   php71u-gd                                                                     --enablerepo=ius-archive amp;amp; yum clean all
 ---> Running in 16ffb3c86062
CentOS-8 - AppStream                            4.2 kB/s | 4.3 kB     00:01    
CentOS-8 - Base                                 3.5 kB/s | 3.9 kB     00:01    
CentOS-8 - Extras                               1.5 kB/s | 1.5 kB     00:00    
CentOS-8 - Extras                               5.4 kB/s | 8.6 kB     00:01    
Extra Packages for Enterprise Linux Modular 8 - 4.7 kB/s | 2.7 kB     00:00    
Extra Packages for Enterprise Linux Modular 8 -  27 kB/s |  97 kB     00:03    
Extra Packages for Enterprise Linux 8 - x86_64  5.1 kB/s | 3.9 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64  615 kB/s | 8.3 MB     00:13    
nginx repo                                       52 kB/s |  76 kB     00:01    
All matches were filtered out by modular filtering for argument: nginx-1.12.2
Error: Unable to find a match: nginx-1.12.2
ERROR: Service 'web' failed to build : The command '/bin/sh -c yum -y install nginx-1.12.2 --enablerepo=nginx                  amp;amp;   yum -y install https://repo.ius.io/ius-release-el7.rpm                  amp;amp;   yum -y install                                                                 php71u-fpm                                                                   php71u-cli                                                                   php71u-mysqlnd                                                               php71u-soap                                                                  php71u-xml                                                                   php71u-zip                                                                   php71u-json                                                                  php71u-mcrypt                                                                php71u-mbstring                                                              php71u-zip                                                                   php71u-gd                                                                     --enablerepo=ius-archive amp;amp; yum clean all' returned a non-zero code: 1
  

почему nginx-1.12.2 не может быть найден? кроме того, есть какие-либо проблемы с версией PHP?

Комментарии:

1. Вы опускаете самую важную информацию: что такое remote-host ?

2. это служба в docker-compose, которая представляет собой контейнер Centos7 с другими службами, установленными ранее

Ответ №1:

Здесь есть 2 проблемы:

  • nginx Также просматривается https://repo.ius.io/ius-release-el7.rpm , поэтому сначала вам нужно установить этот исходный код.

  • Nginx в этом источнике 1.16.1 , см. Это:

     # yum list | grep nginx
    nginx.x86_64                              1:1.16.1-2.el7                 @epel
      

    Итак, если вы действительно настаиваете на 1.12.2, вам придется найти новый источник.

Версия php в порядке, тогда, если вас не волнует версия nginx, работоспособный минимум Dockerfile , как следующий:

 FROM centos:7
RUN                                                                          
  yum -y install https://repo.ius.io/ius-release-el7.rpm                  amp;amp; 
  yum -y install nginx-1.16.1                                             amp;amp; 
  yum -y install                                                             
    php71u-fpm                                                               
    php71u-cli                                                               
    php71u-mysqlnd                                                           
    php71u-soap                                                              
    php71u-xml                                                               
    php71u-zip                                                               
    php71u-json                                                              
    php71u-mcrypt                                                            
    php71u-mbstring                                                          
    php71u-zip                                                               
    php71u-gd                                                                
     --enablerepo=ius-archive amp;amp; yum clean all
  

Ответ №2:

Точный файл Dockerfile, необходимый для этой цели:

<— language-all: lang-html —>

 FROM remote-host

LABEL Remarks="This is a Dockerfile for CentOS System"

COPY ./conf/nginx.repo /etc/yum.repos.d/nginx.repo

#Update Software Repository
RUN yum -y install epel-release
RUN yum -y update
RUN yum -y install nginx

EXPOSE 80 443
VOLUME /var/www/html /var/log/nginx /var/log/php-fpm /var/lib/php-fpm
COPY ./conf/nginx.conf /etc/nginx/conf.d/default.conf
COPY ./bin/start.sh /start.sh
RUN chmod  x /start.sh
CMD /start.sh

ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]