docker 打包 php 应用

big_catbig_cat -
docker 打包 php 应用
项目文件
./
├── Dockerfile
├── env.php
└── index.php

Dockerfile

#基础镜像
FROM php:7.4-cli

# copy 当前宿主机目录下的内容到镜像目录
COPY . /apps/demo

# 设置工作目录
WORKDIR /apps/demo

# 定义一些环境变量作为运行参数
ENV APP_NAME=""
ENV APP_VER="0.0.1"

# 设置容器入口程序(此时的 pwd 在工作目录下)
ENTRYPOINT ["php", "./index.php"]

tips: 如果需要登录容器后再启动服务,可以设为启动一个 bash 会话来保证容器不退出

ENTRYPOINT ["bash", "-c", "echo welcome to docker"]

反正入口程序一定要有 会话保持 的特性,否则容器运行完命令后就会自动退出了。

index.php

<?php
// loop 作为入口程序 防止容器运行结束自动退出
// 生产中大都是 http、websocket、tcp 等服务
while (true) {
    echo "hello docker" . PHP_EOL;
    sleep(3);
}

env.php

<?php
// 读取容器中的环境变量
echo getenv("APP_NAME") . PHP_EOL;
echo getenv("APP_VER") . PHP_EOL;
打包镜像
# 打包要养成版本号的良好习惯
docker build -t php-demo:v1 .
docker build -t php-demo:v2 .

# 查看本地镜像
docker images
创建/运行容器
# 使用镜像创建容器 传入环境变量
docker run -it \
--privileged=true \
-e APP_NAME="php-demo-1" \
-e APP_VER="1.0.1" \
--name php-demo-1 php-demo:v1

# 查看容器
docker ps

# 登录容器
docker exec -it php-demo-1 bash

# 读取环境变量
php env.php
文件 cp
# 拷贝宿主机文件到容器
docker cp tmp.php php-demo-1:/apps/demo
# 拷贝容器文件到宿主机
docker cp php-demo-1:/apps/demo/env.php env.php
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

dockerphp

扩展阅读

加个好友,技术交流

1628738909466805.jpg