php如何运行代码docker项⽬部署php_部署⾃⼰的PHP代码⾄docker环境上⼀篇⽂章安装了LAMP环境,这次在上⼀篇的基础上,将⾃⼰的代码部署在docker环境中。
1、将⾃⼰的代码上传⾄github或者其他代码托管⽹站上。
FROM tutum/lamp:latest
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;
$./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/f
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/f && rm -rf /etc/apache2/ports_conf #增加新的配置⽂件
ADD apache_conf /etc/apache2/f
ADD ports_conf /etc/f
RUN chown -R www-data:www-data /app
EXPOSE 9100
CMD ["/run.sh"]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。