2016-02-28 82 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