首页 > 编程语言 >宿主机套用 docker 容器中安装 PHP 的开发环境

宿主机套用 docker 容器中安装 PHP 的开发环境

时间:2023-05-26 15:55:45浏览次数:46  
标签:php -- 宿主机 apt work docker PHP

docker 可以把运行环境整体打包,但是在开发时,IDE 往往还要指定宿主机上的PHP 可执行文件,这样,安装php扩展时,要装两遍,比较麻烦.如果在宿主机上运行容器中的命令? 可以借助 docker exec -it <container_name> <command> <args> 命令, 写个 名为php 的shell 脚本,里面写入这行代码即可.

我用的环境是 wsl 中安装 docker, 很久以前,这个方法似乎很不通, 在 phpsrtom 中指定 php可执行文件时, 会报检测不通过,后来,这个方法又成功了.

从 ubuntu22.04 构建自己的基础镜像,这里主要是安装一些基础依赖,并切换了下镜像源。也可以跳过,直接用 ubuntu22.04 官方源。我之前用官方源时,发现 apt update 时,连接失败。然后我在香港云服务器上通过下面的 Dockfile 创建了个基础镜像。

#=================================================================================================
# docker build --force-rm -t zbseoag/ubuntu:22.04  .
#=================================================================================================
FROM ubuntu:22.04

WORKDIR /home
RUN set -eux ;\
apt-get update ;\
apt-get install -y --no-install-recommends --no-install-suggests ca-certificates ;\
cp /etc/apt/sources.list /etc/apt/sources.list.bak ;\
sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list ;\
sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list

运行容器:

docker run -id --name work --add-host work:127.0.0.1 --network host -v /c:/c -v /d:/d --cap-add SYS_PTRACE --restart unless-stopped zbseoag/ubuntu:22.04
docker exec -it work bash

进入容器后,就像一般使用 ubuntu 一样,安装 php nginx mysql 

apt install sudo 
apt install php-dev nginx mysql_server redis-server composer

在宿主机上创建 php 和 composer 脚本

su root
echo 'docker exec -w $(pwd) -t work php "$@"' > /usr/local/bin/php
echo 'docker exec -w $(pwd) -t work composer "$@"' > /usr/local/bin/composer
chmod a+x /usr/local/bin/php /usr/local/bin/composer

然后,就可以在宿主机上尝试使用 php -v 查看版本

提交容器为镜像,并推送到 docker hub

docker commit work zbseoag/work:latest
docker login
docker push zbseoag/work:latest

  

 

标签:php,--,宿主机,apt,work,docker,PHP
From: https://www.cnblogs.com/zbseoag/p/17434956.html

相关文章

  • PHP Amqp 封装类
    1<?php23/**4*使用示例5#定义名称6define('ExchangeName','exchange_name_15');7define('QueueName','queue_name_15');8define('RoutingKey','routing_key_15');91......
  • PHP 反射机制打印对象
    1<?php2/**34echoObj::new('Redis');5echoObj::new('Redis')->method('set')?->isPublic();67*/89classObjextendsReflectionClass10{11publicstaticfunctionstd(?array$attrs=null)1......
  • docker部署gitlab私有仓库
    官方文档https://docs.gitlab.com/ee/install/docker.html编写docker-compose文件version:'3.6'services:web:image:'gitlab/gitlab-ee:latest'restart:alwayshostname:'192.168.31.160'ports:-'5111:80&......
  • 动力节点Docker实战入门教程(4)Docker容陈可人
    根据B站上动力节点的最新版Docker教程整理了学习笔记,持续更新中~4Docker容器4.1容器基础4.1.1容器启动流程通过dockerrun命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像,如果找到了,则直接启动,否则会到镜像中心查找。如果镜像中心存在该镜像,则会下载到本地......
  • 修改docker默认存储路径
    docker消耗内存太严重!!必须申请一个大硬盘,然后修改默认存储路径  停止docker服务servicedockerstopcopy数据到新的存放路径cp-r/var/lib/docker/* /data/docker重命名/var/lib/docker  mv/var/lib/docker/var/lib/dockerbak创建软连接ln-......
  • Graphpad Prism9.5.1 科学绘图软件 下载安装教程(含Win/Mac)
    软件下载AutodeskFlame2024formac软件介绍AutodeskFlame破解版由是Autodesk公司(译作欧特克)开发的一款高端电影剪辑和特效制作系统。Flame是用于高速合成、高级图形和客户驱动的交互设计的终极视觉特效制作系统。AutodeskFlame提供出色的性能和荣获奥斯卡奖的工具。从......
  • 离线安装docker-compose
    1.github下载版本https://github.com/docker/compose/releases 2.解压  3. 移到指定目录mvdocker-compose-linux-x86_64/usr/local/bin///修改文件名mvdocker-compose-linux-x86_64docker-compose//授权sudochmod+x/usr/local/bin/docker-compose//查......
  • docker login harbor x509: certificate signed by unknown authority
    前言dockerloginharborx509:certificatesignedbyunknownauthority解决打开/etc/docker/daemon.json,如果没有这个文件新增即可vim/etc/docker/daemon.json加入insecure-registries{"insecure-registries":["harbor.xxxx.com:1111"]}重启dockersudo......
  • Docker - 安装tomcat
     搜索tomcat镜像dockersearchtomcat拉取镜像dockerpulltomcat:[tag]拉取tomcat8dockerpulltomcat:8运行容器dockerrun-d-p8080:8080--nametomcat_hellotomcat:8-d:以后台方式运行-p:8080:8080:端口映射到主机的8080端口--name:将容器命名为tomcat_hello访问界......
  • php语言开发宝塔部署thinkphp考试平台管理系统
    技术架构PHP7.2+Thinkphp6+React+UmiJs+nginx+mysql5.7cnetos7以上+宝塔面板搭建教程1.下载源码,宝塔添加一个站点,PHP版本选择7.2。2.压缩codes后台代码目录,上传后台代码到宝塔的网站根目录当中解压缩,关闭防跨站,运行目录指向public,伪静态选择thinkphp,设置为:locat......