2016-07-01 10 views
0

私の会社のソリューションのためにImage Dockerをビルドする必要があります。 この画像にはいくつかの依存関係が含まれていて、centos7に基づいている必要があります。これらの依存関係の中にはhttpdがあります。Centos7 ::エラーパッケージ解凍rpmパッケージhttpd-2.4.6-40.el7.centos.1.x86_64

ので、私はこれらのexplainationsに応じてこれにsystemdにとCentOSの7の画像をDockerfile建て:https://hub.docker.com/_/centos/

マイcentos7/Dockerfile

FROM centos:centos7 

ENV container docker 

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; \ 
do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ 
rm -f /lib/systemd/system/multi-user.target.wants/*;\ 
rm -f /etc/systemd/system/*.wants/*;\ 
rm -f /lib/systemd/system/local-fs.target.wants/*; \ 
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ 
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ 
rm -f /lib/systemd/system/basic.target.wants/*;\ 
rm -f /lib/systemd/system/anaconda.target.wants/*; 

RUN yum -y install deltarpm && yum clean all 
RUN yum -y update && yum clean all 
RUN yum -y install vim wget tar && yum clean all 

VOLUME ["/sys/fs/cgroup"] 

CMD ["/usr/sbin/init"] 

そして、私は私にこのイメージをプッシュしますリポジトリ "agilium/centos7" そして私は同じ説明に従ってhttpdのための他のDockerfileを書きました: 私のhttpd/Dockerfile

FROM agilium/centos7 

RUN yum -y update && yum clean all 
RUN yum -y install httpd; yum clean all; systemctl enable httpd.service 

EXPOSE 80 

CMD ["/usr/sbin/init"] 

そして、私は私のイメージ構築されたとき、私はこのエラーを持っている:私もrpmパッケージをlocalinstallしようとしましたが、同じエラーで、このよう Error unpacking rpm package httpd-2.4.6-40.el7.centos.1.x86_64

を:

COPY ./install/* ./install/ 
RUN yum -y localinstall ./install/httpd-2.4.6-40.el7.centos.1.x86_64.rpm 

解決策を検索してgithub(問題#461)に問題が見つかりましたが、解決策が見つからず、問題が解決したようです。 =/

ありがとうございました。

+0

「ドッカープルセコス:セントロス7」を試しましたか?あなたが言われた問題から、それはイメージの問題だったようです。あなたのDockerfileを最新版でうまく構築することができます(ビルドする前に引っ張りました)。 – joelnb

+0

私はちょうど私が私の記事で間違いをしたことに気づいた。最初のイメージをリポジトリにプッシュし、このイメージを使用して2番目のイメージを作成したことを忘れてしまいました。私は自分自身を修正するために自分の投稿を編集しました。 そして私はあなたの解決策を試してみよう) – Clement

+0

私はあなたのソリューションを試してみました。イメージをビルドする前に 'docker pull centos:centos7'を作ったのですが、' FROM agilium/centos7'ではなく 'FROM centos:centos7 '。私は同時に同じエラーがあります。 問題が解消されない場合、これは私のビルドラインです: 'docker build --force-rm = true --pull = true --tag =" agilium/centos7_httpd "-f Dockerfile" $(pwd) "' – Clement

答えて

0

あなたはこの問題はCentOSに6から試みてもらって、私はdevicemapper代わりのAUFSに行くしようとしましたが、私のドッカーがクラッシュし、私はそれを再起動することができませんでしたか、どんな...

私はDockerfileをしました実際には、少なくともコンテナに入るまで

 FROM centos:6 

    RUN yum -y update \ 
    && yum install -y vim \ 
    && yum install -y httpd \ 
    && yum install -y mysql \ 
    && yum install -y php 

    EXPOSE 80 443 3306 

    CMD service httpd start \ 
    && clear \ 
    && bash