2016-02-28 83 views
1

我已經使用以下步驟構建的圖像:添加命令搬運工圖像

下載adminer包

wget的https://www.adminer.org/static/download/4.2.4/adminer-4.2.4-en.php

MV adminer-4.2.4-en.php adminer.php

創建碼頭文件

vi dockerfile

FROM ubuntu 
RUN apt-get -y install apache2 php5 php5-curl php5-cli php5-mysql php5-gd mysql-client mysql-server 
RUN apt-get -y install postgresql postgresql-contrib 
RUN apt-get -y install php5-pgsql 
COPY adminer.php /var/www/html/ 
RUN chmod -R 777 /var/www/html/ 

構建並運行

碼頭構建-t shantanuo/adminer1。

搬運工運行-i -t --rm -p 80:80 --name adminer1 shantanuo/adminer1


我需要運行這個命令,一旦我在容器內啓動Apache。

須藤服務的Apache2啓動

怎樣包括在dockerfile這個命令? (爲此添加CMD後生成失敗。)

是否有任何其他(更好)的安裝adminer.php軟件包的方式?

可以縮小此圖片的大小嗎?

+0

訣竅是使用像'CMD [「/ usr/sbin目錄/ Apache2的在非守護模式下運行的Apache2 -D FOREGROUND「]',或者從Apache Docker鏡像開始,例如https://hub.docker.com/_/httpd/而不是ubuntu的基礎鏡像。 –

回答

2

你要做的是打開交互式bash會話並嘗試啓動服務器。

如果您以分離模式(-d)而不是-it啓動相同的圖像並讓apache運行,那會更好。
爲此,作爲評論,你需要開始從的httpd:2.4其中:

更妙的是使用PHP docker image

FROM php:5.6-apache 

這樣的話,你甚至不必安裝Apache或PHP。你只需複製你的PHP應用程序。

然後,如果你需要,你還可以打開一個bash會話:

docker exec -it <yourContainer> bash 
+0

我更改了基礎圖像。但現在我無法包含所需的軟件包。 – shantanuo

+0

@shantanuo你會得到什麼錯誤?不要忘記這個新的基礎圖像,你不必再包含php包。 – VonC

+0

圖像構建正確。但是我在應用程序中出現錯誤:沒有支持的PHP擴展(PgSQL,PDO_PgSQL)可用。 – shantanuo