2016-09-23 11 views
6

私は完全なDockerの初心者ですが、既存のシステムを維持する必要があります。私が使用していますDockerfileは以下の通りです:DockerにGDをインストール

FROM php:5.6-apache 

RUN docker-php-ext-install mysql mysqli 

RUN apt-get update -y && apt-get install -y sendmail 

RUN apt-get update && \ 
    apt-get install -y \ 
     zlib1g-dev 

RUN docker-php-ext-install mbstring 

RUN docker-php-ext-install zip 

RUN docker-php-ext-install gd 

私は実行すると、私はエラーを取得するまで、すべてがOKと思われる「[サイト名]構築ドッカー」:

configure: error: png.h not found. 
The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1 

このエラーの原因は何ですか?

答えて

16

あなたのDockerfilelibpng-devパッケージを追加する必要があります

FROM php:5.6-apache 

RUN docker-php-ext-install mysql mysqli 

RUN apt-get update -y && apt-get install -y sendmail libpng-dev 

RUN apt-get update && \ 
    apt-get install -y \ 
     zlib1g-dev 

RUN docker-php-ext-install mbstring 

RUN docker-php-ext-install zip 

RUN docker-php-ext-install gd 

を次にDockerfileとディレクトリに移動して実行します。

docker build -t sitename .

それは私の場合で働いていた:

Removing intermediate container f03522715567 
Successfully built 9d69212196a2 

あなたが何か誤りがある場合私は知っている。

EDIT:

REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
sitename   latest    9d69212196a2  19 minutes ago  414 MB 
<none>    <none>    b6c69576a359  25 minutes ago  412.3 MB 

EDIT2:

ただ、すべて二重にチェックする:

このdocker buildのコマンドを実行してください

あなたはこのようなものが表示されるはずですway:

docker build -t sitename:1.0 .

:1.0を追加すると、何も変更しないでください、私はちょうどdocker images出力に追加の行を持つようにこれを追加しました)

その後コンテナを開始:それは動作するはずです

docker run --name sitename_test -p 80:80 sitename:1.0

をちょうど良い。

私は、Apacheが標準ポート(80)を使用していると仮定しました。おそらくそれを調整する必要があります。あなたがポート80でリッスンし、他のサービス/コンテナを持っている場合は、あなたのコンテナが他のポートで待機することができます:ポート8080からポート80「内部」コンテナにトラフィックをリダイレクトします

docker run --name sitename_test -p 8080:80 sitename:1.0

を。

通常は、バックグラウンドでコンテナを実行します。これを行うには、docker runコマンドに-dオプションを追加します(ただし、テスト目的でコンソールに出力するには-dを省略できます)。

希望に役立ちます。

+0

それはビルドされているように見えましたが、そうしている間に私は赤で数行が表示されました。これらは失敗ですか? – evilscary

+0

これらの行を貼り付けてください。私はビルドを行ったが、警告/エラーは発生しなかった。 – lmtx

+0

また、私が 'docker images'をチェックすると、実行時にビルドが実行されたと言われていますが、RepositoryカラムにはNoneがあります。 – evilscary

関連する問題