Создание настраиваемого док-контейнера, соответствующего моему серверу - PullRequest
0 голосов
/ 04 июня 2018

Я новичок в докере, нужно было использовать его для устаревшего проекта, который требует php5.Вот мой Dockerfile фрагмент:

FROM ubuntu:14.04.1
LABEL MAINTAINER Hasan
RUN apt-get update && \
    apt-get install -y apache2 && \
    apt-get install -y mysql-server php5-mysql && \
    apt-get install -y php5 libapache2-mod-php5 php5-mcrypt
WORKDIR /var/www/html
COPY . /var/www/html
EXPOSE 80
CMD service apache2 start

Вот команда для его построения:

docker build -t rakibtg/oldapp .

Это дает несколько ошибок, включая «Несоответствие хэш-суммы» и «возвращает не-нулевой код: 100 '

Извлечено 16,7 МБ за 60 с (274 кБ / с) E: Не удалось получить http://archive.ubuntu.com/ubuntu/pool/main/p/perl/perl-modules_5.18.2-2ubuntu1.4_all.deb Несоответствие хэш-суммы

E: Невозможно получитьнекоторые архивы, может быть, запустить apt-get update или попробовать --fix-missing?Команда '/ bin / sh -c apt-get update && apt-get install -y apache2 && apt-get install -y mysql-server php5-mysql && apt-get install -y php5 libapache2-mod-php5 php5-mcrypt'вернул ненулевой код: 100

Что мне сделать, чтобы это исправить?Кроме того, CMD настроен здесь правильно?Любое руководство будет приветствоваться

  • Я использую докер на Mac

1 Ответ

0 голосов
/ 04 июня 2018

Эта ошибка скорее связана с поведением apt-get, чем с Docker.Вы можете попробовать:

FROM ubuntu:14.04.1
LABEL MAINTAINER Hasan
RUN apt-get clean && apt-get update && \
    apt-get install -y apache2 && \
    apt-get install -y mysql-server php5-mysql && \
    apt-get install -y php5 libapache2-mod-php5 php5-mcrypt
WORKDIR /var/www/html
COPY . /var/www/html
EXPOSE 80
CMD apachectl -D FOREGROUND

или другие решения, упомянутые в Проблема с загрузкой списка пакетов из-за ошибки несоответствия хэш-суммы

Кстати, я изменил вашу инструкцию CMD.Действительно, при использовании сервиса процесс будет отделен от оболочки, и Docker остановит контейнер (см. Как автоматически запускать apache2 в контейнере Dobu Ubuntu? для связанных объяснений)

...