Как я могу передать аргументы или обойти это в процессе сборки Docker? - PullRequest
0 голосов
/ 31 октября 2018

Я пишу Dockerfile для своего PHP-приложения, и вместо dockerhub я создаю его с нуля.

например:

 FROM ubuntu:18.04
 RUN apt-get update && \
       apt-get install -y --no-install-recommends apt-utils && \
       apt-get -y install sudo

 RUN sudo apt-get install apache2 -y
 RUN sudo apt-get install mysql-server -y
 RUN sudo apt-get install php libapache2-mod-php -y 
 RUN rm -rf /var/www/html/
 COPY . /var/www/html/
 WORKDIR /var/www/html/
 EXPOSE 80
 RUN chmod -R 777 /var/www/html/app/tmp/

 CMD systemctl restart apache2

на этом шаге:

 RUN sudo apt-get install php libapache2-mod-php -y

Я застреваю, потому что он запрашивает пользовательский ввод, как ::

Пожалуйста, выберите географический район, в котором вы живете. Последующая настройка вопросы сузят это, представив список городов, представляющих часовые пояса, в котором они расположены.

  1. Африка 4. Австралия 7. Атлантика 10. Тихий океан 13. И т.д.
  2. Америка 5. Арктика 8. Европа 11. Система V
  3. Антарктида 6. Азия 9. Индийская 12. США Географическая зона:

Я не могу двигаться вперед, я пытался так:

RUN sudo apt-get install php libapache2-mod-php -y 9

Но нет результата, пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вы можете установить переменные окружения DEBIAN_FRONTEND=noninteractive и DEBCONF_NONINTERACTIVE_SEEN=true в вашем Dockerfile до RUN sudo apt-get install php libapache2-mod-php -y.

Ваш Dockerfile должен выглядеть следующим образом:

FROM ubuntu:18.04


RUN apt-get update && \
       apt-get install -y --no-install-recommends apt-utils && \
       apt-get -y install sudo

RUN sudo apt-get install apache2 -y
RUN sudo apt-get install mysql-server -y


## for apt to be noninteractive
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true

## preesed tzdata, update package index, upgrade packages and install needed software
RUN echo "tzdata tzdata/Areas select Europe" > /tmp/preseed.txt; \
    echo "tzdata tzdata/Zones/Europe select Berlin" >> /tmp/preseed.txt; \
    debconf-set-selections /tmp/preseed.txt && \
    apt-get update && \
    apt-get install -y tzdata



RUN sudo apt-get install php libapache2-mod-php -y
RUN rm -rf /var/www/html/
COPY . /var/www/html/
WORKDIR /var/www/html/
EXPOSE 80
RUN chmod -R 777 /var/www/html/app/tmp/

CMD systemctl restart apache2

Вы должны изменить Europe и Berlin на то, что вы хотите.

0 голосов
/ 31 октября 2018

Вы можете попробовать это (несколько запросов)

apt-get install x y
...