docker项目部署 php_部署自己的PHP代码至docker环境

上一篇文章安装了LAMP环境,这次在上一篇的基础上,将自己的代码部署在docker环境中。

1、将自己的代码上传至github或者其他代码托管网站上。

2、新建一个目录,并在这个目录中新建一个Dockfile文件,输入以下内容(将https://github.com/username/customapp.git替换为自己的项目git地址):

FROM tutum/lamp:latest

RUN rm -fr /app && git clone https://github.com/username/customapp.git /app

RUN chown -R www-data:www-data /app

EXPOSE 80 3306

CMD ["/run.sh"]

3、构建镜像,在当前目录下运行以下命令(username/my-lamp-app为镜像的名字,可以任意取):

docker build -t username/my-lamp-app .

构建完成后,通过docker images可以查看。

4、运行镜像

docker run -d -p 80:80 -p 3306:3306 username/my-lamp-app

运行后即可以通过输入ip地址来访问情况。

5、为了便于查找错误,可以先开启PHP的报错,在php入口文件中添加:

ini_set('display_errors','On');

error_reporting(E_ALL);

6、如果修改过项目并重新提交到了git,希望重新打包镜像时,能重新下载git上的项目,那么需要运行如下命令:

docker build --no-cache -t username/my-lamp-app .

7、如何进入正在运行的容器,为了方便在容器中调试程序,有时候需要进入运行的容器中

7.1 安装nsenter

$cd /tmp;

$curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;

$./configure --without-ncurses

$make nsenter && sudo cp nsenter /usr/local/bin

7.2 查看当前正在运行的容器id

docker ps

7.3 为了连接到容器,你还需要找到容器的第一个进程的PID(将container-id替换为7.2中查看的容器id)。

docker inspect --format "{{ .State.Pid }}" container-id

7.4 连接到容器(将$PID替换为7.3中的进程PID)

nsenter --target $PID --mount --uts --ipc --net --pid

8 如何在运行容器前,修改apache配置? 例如修改apache默认的监听端口,可以这么做

8.1 修改网站监听的端口。在Dockfile的同级目录下,新建一个apache_conf文件(可以从tutum/lamp里面去拷贝),内容如下:

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

Options FollowSymLinks

AllowOverride None

Options Indexes FollowSymLinks MultiViews

# To make wordpress .htaccess work

AllowOverride FileInfo

Order allow,deny

allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

#

# Set HTTPS environment variable if we came in over secure

# channel.

SetEnvIf x-forwarded-proto https HTTPS=on

现在只需要修改这个文件,例如我想把网站端口由默认的80改为8080,那么只需要更改VirtualHost 后面的80为8080即可。

8.2 修改apache监听端口

在Dockfile的同级目录下,新建一个ports_conf文件,内容如下:

# If you just change the port or add more ports here, you will likely also

# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default.conf

Listen 80

Listen 443

Listen 443

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

将Listen 后面的80改为其他端口数字即可。

8.3 修改Dockfile文件

FROM dedemao/lamp:latest

#删除原有的配置文件

RUN rm -rf /etc/apache2/sites-available/000-default.conf && rm -rf /etc/apache2/ports_conf

#增加新的配置文件

ADD apache_conf /etc/apache2/sites-available/000-default.conf

ADD ports_conf /etc/apache2/ports.conf

RUN rm -fr /app && git clone https://code.aliyun.com/884358/convert.git /app

RUN chown -R www-data:www-data /app

EXPOSE 9100

CMD ["/run.sh"]

参考1:http://www.oschina.net/translate/enter-docker-container

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值