Docker-compose+Dockerfile构建并启动php7.4镜像

2023-05-16

利用官方镜像+Dockerfile构建符合自己要求php7.4镜像

DockerFile

  • apt官方源太慢时,切换apt源
  • 该dockerfile支持的php额外扩展 bcmatch event exif gd mysqli iconv pcntl pdo_mysql redis sockets opcache
  • 来源 php:7.4.33-fpm
FROM php:7.4.33-fpm
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#切换apt源 需要就放开
#RUN mv  /etc/apt/sources.list  /etc/apt/sources.list.bak
#ADD sources.list /etc/apt/
#RUN cat /etc/apt/sources.list
RUN apt-get clean all && apt-get update && apt-get install -y \
#部分调试工具,线上环境不需要
#telnet curl vim inetutils-ping \
libevent-dev pkg-config libxml2 libxml2-dev openssl libssl-dev sqlite3 \
libsqlite3-dev libpng-dev libjpeg-dev libfreetype-dev \
 && docker-php-ext-install pdo_mysql mysqli \
 && docker-php-ext-install bcmath exif gd iconv pcntl

RUN pecl install redis && docker-php-ext-enable redis \
&& docker-php-ext-install sockets && docker-php-ext-enable sockets \
&& pecl install event-3.0.6 && docker-php-ext-enable event \
&&  rm -rf /tmp/pear

#安装compose
RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer
RUN  chmod a+x /usr/bin/composer \
    && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
EXPOSE 9000

同级目录的 sources.list文件,需要切换apt源时使用

#http://mirrors.163.com/debian/为软件源也可以为其他的 bullseye为版本代号 main non-free contrib区别如下
deb http://mirrors.163.com/debian/ bullseye main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ bullseye-backports main non-free contrib
#deb http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
#deb http://mirrors.ustc.edu.cn/debian-security/ bullseye/updates main non-free contrib
#deb-src http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
#deb-src http://mirrors.ustc.edu.cn/debian-security/ bullseye/updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib

Docker-compose

  • 挂载文件php.ini php-fpm.conf
  • stdin_open与 tty 用于执行常驻脚本
  • 构建后镜像名称 php:7.4-local
  • fpm reload 宿主机指令: docker exec php kill -USR2 1
  • cli 宿主机指令 docker exec php php ${WWW_DIR}/cli.php 
  • .env配置 WWW_DIR挂载项目路径
  • docker-compose up  首次启动会构建镜像
version: "3"
networks:
  webnet:
    driver: bridge
services:
  php:
    build: ./php
    image: php:7.4-local
    container_name: php
    restart: always
    expose:
      - 9000
    stdin_open: true
    tty: true
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ${WWW_DIR}:/www
      - ./php/etc/php.ini:/usr/local/etc/php/php.ini
      - ./php/etc/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf
    networks:
      - webnet

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker-compose+Dockerfile构建并启动php7.4镜像 的相关文章

  • 挂载卷时无法运行 mariadb

    使用以下 docker compose yml 文件 version 2 services wordpress image wordpress ports 8080 80 environment WORDPRESS DB NAME my d
  • 稍后如何附加到正在运行的 Docker 容器?

    我想简单地启动一个 docker 容器来执行一些 java 代码 最终启动 JBoss 这工作正常 只是我不知道如何再次连接到容器并返回到 bash 提示符 这就是我启动容器的方式 docker run i t p 80 80 v tmp
  • 如何获取 docker run -i 的输出

    docker run通常返回其运行的命令的输出 我需要将一些数据传递给 docker 运行处理数据的命令 然后返回输出 当我使用 i选项 不返回任何输出 考虑这个简单的例子 echo hello docker run i base wc 它
  • Azure Function Docker 无法使用 http 触发器

    最近 我使用具有 HttpTrigger 的 Azure Function 节点 创建了一个 docker 映像 这是默认生成的基本 HttpTrigger 我正在 Macbook Pro MoJave 上开发此程序 并且安装了以下工具 N
  • 从头开始使用映像部署无法启动

    我正在使用以下内容构建图像Dockerfile FROM golang 1 19 2 bullseye as builder COPY src src WORKDIR src RUN CGO ENABLED 1 go build race
  • 如何访问docker镜像?

    我试图在不运行的情况下访问 docker 映像 我只想知道它包含什么内容以进行验证 我无法 ssh 进入容器 因为它会在一秒钟内结束 所以我需要探索图像而不是容器 或者 在完成之前是否可以访问容器 明白了 命令如下 docker run i
  • Python脚本仅在Docker中产生僵尸进程

    我有相当复杂的设置 Luigi https github com spotify luigi https github com spotify luigi https github com kennethreitz requests htm
  • 如何在 Mac 上升级 Docker? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我尝试了 docker machine升级 并做了一些工作 但我似乎没有最新的 CLI 如果我执行 docker 版本 我会得到 Clie
  • 无法在 Docker 下运行 AWS SAM CLI

    我正在尝试创建一个 Docker 镜像AWS SAM CLI https github com awslabs aws sam cli 但调用任何函数都会出现错误 无法导入模块 index 我可以在 Docker 之外成功运行相同的测试用例
  • Docker 错误:无法找到包 git

    我正在使用图像nginx这是基于dockerfile ubuntu 连接到 docker 容器的 shell docker exec it
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • 无法从 docker 容器打开 URL

    我在从 Docker 容器导航到 Google 身份验证页面时遇到问题 该应用程序是使用 asp net Core 2 0 制作的 其目的是显示从 Google Calendar API 检索的即将发生的事件 并在需要时创建事件 当应用程序
  • 启动 docker 容器时向主机 /etc/hosts 文件添加条目

    我希望能够将主机名添加到映射到 docker 容器的笔记本电脑 etc hosts 中 由于容器 ip 不是静态的 因此我启动 重新启动容器的每个站点都需要手动更新 etc hosts 文件 这不太实用 我正在寻找一种简单的方法来解决这个问
  • 是否可以对不同的服务使用不同的 .env?

    我遇到一种情况 最好有多个 env 文件 每个 env 文件对应 docker compose yml 中的每个服务 有什么方法可以指定要使用的不同文件名吗 这可以在个人服务层面上做到吗 我尝试使用env file不幸的是 这设置了在 Do
  • PhpStorm Docker PHPUnit 数据库

    I setup https blog jetbrains com phpstorm 2016 11 docker remote interpreters PhpStorm PHP PHPUnit 与 Docker 我在 PhpStorm 数
  • 更改在 docker 中运行的 selenium 节点的日志级别

    我们的团队正在使用 docker 部署 selenium 网格 默认日志级别似乎设置为 INFO 我想将其设置为更高的值 严重 或完全关闭它们 我已经进行了三次尝试 但到目前为止 没有效果 方法一 从 selenium 客户端 我尝试在 D
  • 无法在 docker 容器内安装 vim 或 nano

    尝试在 docker vim 或 nano 内安装 但我只得到这个 0 Connecting to archive ubuntu com 91 189 88 152 退出 docker 并执行ping archive ubuntu com我
  • 如何查看 docker build“RUN 命令”标准输出? (适用于 Windows 的 Docker)

    过去我可以简单地做这样的事情 Dockerfile FROM ubuntu RUN echo test 这会输出test到我的壳 我用它作为调试我的构建的一种方式 在 Windows 版 docker 的最新稳定版本中 构建输出看起来完全不
  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • Dockerfile:在单行中设置多个环境变量

    我的印象是环境变量可以设置在一行上 如下所示 以尽量减少中间图像 FROM alpine 3 6 ENV RUBY MAJOR 2 4 RUBY VERSION 2 4 1 RUBY DOWNLOAD SHA256 4fc8a9992de3

随机推荐

  • Qt 线程同步与异步处理

    一 线程分析 1 继承QThread类 平时我们使用线程的时候一般是继承QThread类 xff0c 实现它的run 函数 xff0c 将需要在线程中执行的代码放在run 里进行执行 需要注意的事项 xff1a 如果是while循环 xff
  • 通过UltraEdit(UE)转化\r\n(回车换行)与\n(换行)

    r n 回车换行 是window上的换行符 xff0c n 换行 是linux上的换行符 xff0c 下面介绍通过UltraEdit UE 在windows上实现相互转化 1 r n 回车换行 转化为 n 换行 用UE打开对应的文本文件 x
  • Android多媒体篇

    多媒体接口和娱乐 游戏等业务密切相关 xff0c 灵活地采用多媒体接口 xff0c 可以使应用具备更强的吸引力 1 音频处理 作为多媒体处理的最基本的组成部分 xff0c 音频处理在移动终端上十分复杂 音频的播放 记录 以及多种场景 xff
  • Java基础教程

    一 Java语法 1 java主要特性 Java语言是简单的 xff1a Java语言的语法与C语言和C 43 43 语言很接近 xff0c 使得大多数程序员很容易学习和使用 另一方面 xff0c Java丢弃了C 43 43 中很少使用的
  • JSP基础教程

    xfeff xfeff JSP技术是以Java语言作为脚本语言的 xff0c JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序 1 Java简介 1 xff09 为什么使用JSP xff1f JSP程序与CG
  • 系统设计概论

    1 分层系统软件体系结构 1 xff09 简介 层次系统风格将对软件结构组织成一个层次结构 xff0c 一个分层系统组织的 xff0c 每层对上层提供服务 xff0c 同时对下层来讲也是一个服务的对象 在一些分层系统中 xff0c 内部的层
  • python监控windows的cpu,内存,磁盘

    span class hljs comment user bin env python3 span span class hljs comment coding utf 8 span span class hljs keyword impo
  • Java问题_直接运行jar文件,系统没有反应

    问题 xff1a 直接运行jar文件 xff0c 系统没有反应 问题分析 xff1a 我比较好奇为什么安装了Java就可以直接运行 jar文件 https blog csdn net walkingmanc article details
  • 虚拟机安装archlinux的简单步骤

    这篇文章是我在虚拟机安装archlinux之后的一点心得 xff0c 参考了archwiki关于安装arch的一些内容https wiki archlinux org index php Beginners 27 guide 准备工作 选择
  • 服务器远程连接经常连接不上的解决方法

    我们大家在使用服务器的时候或多或少都会有碰上服务器突然远程不上的情况这边给大家分享的服务器远程不上解决办法 xff01 第一步 xff1a 机器如果不通看下是不是被牵引或者内网牵引 xff0c 打开kvm查看系统是否正常运行 1 远程端口通
  • webservice的基础知识以及入门案例1

    一 webService 1 1 webservcie webservice是一种跨操作系统和跨语言的数据调用 数据交换的一种服务技术 用于网络通信 xff0c 多台机器之间的数据交互 最大优点 xff1a webservice最大的好处是
  • 解决docker容器中文乱码,修改docker容器编码格式

    原文链接 http www cnblogs com z belief p 6148463 html 前台上传文件到服务器后 xff0c 服务器返回给前台的文件列表中出现中文乱码 xff0c 所有的中文文件名全部变成 xff1f xff0c
  • Debug: django model querysets-> pandas.Dataframe

    问题描述 在使用Django 的ORM model时 xff0c 有时需要将数据导出并转变成pandas DataFrame 正常的流程应该是 xff1a span class hljs keyword import span pandas
  • mysql数据导出与导入

    只导出表结构 不导出数据 mysqldump opt d stat uroot pxxxx gt stat struct sql linux下 一 导出数据库用mysqldump命令 xff08 注意mysql的安装路径 xff0c 即此命
  • consul配置

    配置文件 1 除了命令行选项之外 xff0c 配置还可以放入文件中 在某些情况下 xff0c 这可能更容易 xff0c 例如使用配置管理系统配置Consul时 2 配置文件是JSON格式 3 配置文件不仅用于设置代理 xff0c 还用于提供
  • consul配置ACL

    1 consul配置文件目录下新增配置文件acl json 内容如下 xff08 实际使用时 xff0c 将注释删除才可使用 xff09 34 acl datacenter 34 34 dc1 34 需要acl配置的数据中心 一般默认是dc
  • centos pptp搭建,windows网关配置

    目录 一 安装 二 配置 三 运行 四 防火墙 五 限速 六 常见问题 七 windows网关设置 一 安装 yum install ppp pptpd y 需要防火墙转发 xff0c 如不想使用iptables可使用其他防火墙 yum i
  • NGINX LOCATION规则

    语法规则 xff1a location 61 uri 首先匹配 61 xff0c 其次匹配 其次是按文件中顺序的正则匹配 xff0c 最后是交给 通用匹配 当有匹配成功时候 xff0c 停止匹配 xff0c 按当前匹配规则处理请求 符号 含
  • -bash:lsnrctl:command not found错误

    哎 xff0c 这个错误折腾了我一下午 xff0c 网上搜索了半天 xff0c 没一个用得上的 现在终于知道为什么了 在linux下 xff0c 使用切换用户命令su切换到ORACLE用户时要加 xff0c 否则ORACLE下的命令全都无效
  • Docker-compose+Dockerfile构建并启动php7.4镜像

    利用官方镜像 43 Dockerfile构建符合自己要求php7 4镜像 DockerFile apt官方源太慢时 xff0c 切换apt源该dockerfile支持的php额外扩展 bcmatch event exif gd mysqli