Как установить nginx 1.14.X внутри докера? - PullRequest
0 голосов
/ 09 декабря 2018
# 1. use ubuntu 16.04 as base image
FROM ubuntu:16.04

# defining user root
USER root

# OS update
RUN apt-get update

# Installing PHP and NginX
RUN apt-get install -y nginx=1.4.* php7.0

# Remove the default Nginx configuration file
RUN rm -v /etc/nginx/nginx.conf

# Copy a configuration file from the current directory
ADD nginx.conf /etc/nginx/

ADD web /usr/share/nginx/html/

# Append "daemon off;" to the beginning of the configuration
RUN echo "daemon off;" >> /etc/nginx/nginx.conf

# Expose ports
EXPOSE 90

# Set the default command to execute
# when creating a new container
CMD service nginx start

Это мой Dockerfile.Я хочу установить 1.14.2 для Nginx, но возникает ошибка:

E: Version '1.4.*' for 'nginx' was not found.

Как я могу таким образом установить определенную версию nginx внутри докера?

Ответы [ 4 ]

0 голосов
/ 16 июля 2019
FROM ubuntu

ENV NGINX_VERSION 1.14.0-0ubuntu1.2

RUN apt-get update && apt-get -y install nginx=$NGINX_VERSION
0 голосов
/ 09 декабря 2018

Другие варианты: вы можете скачать tar (исходный код) и распаковать его.Ниже приведена команда, которой вы должны следовать: -

$ wget https://nginx.org/download/nginx-1.14.0.tar.gz
$ tar zxf nginx-1.14.0.tar.gz
$ cd nginx-1.14.0
$ make
$ sudo make install
$ sudo nginx

Более подробную информацию можно увидеть здесь Nginx - Install doc

0 голосов
/ 09 декабря 2018

Как указывает @larsks Ubuntu 16.04 поддерживает nginx только до версии 1.10.3

Официальная вики с более подробной информацией

Так что лучший / безопасный вариант будетлибо переместите вашу базовую ОС на 18.04, либо используйте nginx 1.10.3

Просто для справки, как вы можете установить Nginx из src.

wget https://nginx.org/download/nginx-1.14.0.tar.gz
tar zxf nginx-1.14.0.tar.gz
cd nginx-1.14.0
make
sudo make install
sudo nginx

Подробнее здесь

0 голосов
/ 09 декабря 2018

Вы основали свой образ Docker на ubuntu:16.04.Релиз Ubuntu от 16.04 не включает nginx 1.14.x;он имеет только nginx 1.10.3:

$ docker run -it --rm ubuntu:16.04 bash
root@1d780d71ebd5:/# apt update
[...]
root@1d780d71ebd5:/# apt show nginx
Package: nginx
Version: 1.10.3-0ubuntu0.16.04.3
[...]

Если вы хотите более свежую версию nginx, подумайте над тем, чтобы основать свое изображение на более свежем выпуске Ubuntu или создать его самостоятельно из исходного кода.Например, версия Ubuntu от 18.04 включает в себя nginx 1.14:

$ docker run -it --rm ubuntu:18.04 bash
root@d7ca6d8960f6:/# apt update
[...]
root@d7ca6d8960f6:/# apt show nginx
Package: nginx
Version: 1.14.0-0ubuntu1.2
[...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...