2016-11-27 11 views
2

я новые с грузчиком и хочу установить nginx внутри моего контейнера для перенаправления на внешнем IPDocker инсталляции Nginx

моя цели отправить запрос на http://localhost:3010/api/v1/service внутри грузчика, и он должен перенаправить меня в мой http://192.168.99.1:3010/api/v1/service

http://192.168.99.1:3010 -it my rails server running 

Или, может быть, я полностью ошибаюсь в своей идее?

я пытаюсь сделать это RUN yum install nginx но я получил

ERROR: Service 'my_service_name' failed to build: The command '/bin/sh -c yum install nginx' returned a non-zero code: 1 

dockerfile

FROM jboss/wildfly:latest 


USER root 
ENV TERM dumb 

RUN yum -y install wget && \ 
    wget https://github.com/papertrail/remote_syslog2/releases/download/v0.15/remote_syslog_linux_amd64.tar.gz && \ 
    tar xzf ./remote_syslog*.tar.gz && \ 
    cd remote_syslog && \ 
    cp ./remote_syslog /usr/local/bin && \ 
    yum -y install postgresql && yum clean all 

ADD customization/DigiCertCA.pem /etc/pki/ca-trust/source/anchors/DigiCertCA.pem 
RUN update-ca-trust extract 


# install nginx 
RUN yum install nginx 
# Copy a configuration file from the current directory 
ADD nginx.conf /etc/nginx/ 
# Set the default command to execute when creating a new container 
CMD service nginx start 


CMD ["find/-type f -exec ls -l {} \;"] 
CMD ["chmod 666 customization/*.properties"] 

ADD customization /opt/jboss/wildfly/customization/ 
COPY customization/WebService.* /opt/jboss/wildfly/standalone/deployments/ 

ADD newrelic /opt/jboss/wildfly/newrelic/ 

CMD ["/opt/jboss/wildfly/customization/execute.sh"] 

EXPOSE 8080 
+0

Какое ваше базовое изображение? Можете ли вы опубликовать весь файл докеров? –

+0

@YaronIdan добавлен – user

+1

Существует также [официальный образ] (https://hub.docker.com/_/nginx/), который вы можете использовать. Вы можете расширить это и добавить свои собственные файлы конфигурации и быть хорошими, чтобы идти. – R0MANARMY

ответ

1

Ваша проблема заключается в том, что вы не добавить репозиторий Nginx в контейнере. Попробуйте добавить этот шаг, прежде чем запустить yum install nginx RUN yum -y install epel-release

Две дополнительных советов - 1. Установить Yum пакетов с флагом -y, в противном случае они не смогут из-за отсутствия пользовательского ввода. 2. Попробуйте поместить все команды установки пакета в одну команду RUN, чтобы уменьшить слои на вашем изображении. Например, я бы установил Nginx в ваш текущий файл Docker, например:

RUN yum -y install wget && \ 
    wget https://github.com/papertrail/remote_syslog2/releases/download/v0.15/remote_syslog_linux_amd64.tar.gz && \ 
    tar xzf ./remote_syslog*.tar.gz && \ 
    cd remote_syslog && \ 
    cp ./remote_syslog /usr/local/bin && \ 
    yum -y install postgresql \ 
    yum -y install epel-release && \ 
    yum -y install nginx && yum clean all 
+0

tnx, это помогло мне – user

+0

Замечательно. Вы должны также принять комментарий @ R0MANARMY. Он прав - использование официального изображения nginx - лучшая практика для такого использования. –

Смежные вопросы