首页 > 其他分享 >记录下使用docker-compose搭建开发环境

记录下使用docker-compose搭建开发环境

时间:2024-10-26 17:47:26浏览次数:1  
标签:code RUN apt etc compose docker php dockerfile 搭建

目录结构

 

docker-compose.yml

version: "3"
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./code:/var/www/html
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - php

  php:
    #image: php:8.0-fpm
    ######################################################
    build:
      context: .
      dockerfile: php-dockerfile
    ######################################################
    volumes:
      - ./code:/var/www/html
      - ./php/php.ini:/usr/local/etc/php/php.ini
    working_dir: /var/www/html
    depends_on:
      - memcached
      - redis

  swoole:
    build:
      context: .
      dockerfile: php-swoole-dockerfile
    ports:
      - "9501:9501"
    volumes:
      - ./code:/var/www/html
      - ./php/php.ini:/usr/local/etc/php/php.ini
    working_dir: /var/www/html

  django:
    build:
      context: .
      dockerfile: python-django-dockerfile
    command: python code/hello_django/manage.py runserver 0.0.0.0:8989
    ports:
      - "8989:8989"
    volumes:
      - .:/code
    working_dir: /code

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: test
    ports:
      - "3306:3306"

  memcached:
    image: memcached:latest
    ports:
      - "11211:11211"
 
  redis:
    image: redis:latest
    ports:
      - "6379:6379"

php-dockerfile

FROM php:8.0-fpm

RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

RUN apt-get update && apt-get install libbrotli-dev zlib1g-dev build-essential

#安装PHP扩展
RUN docker-php-ext-install pdo_mysql mysqli bcmath
RUN pecl install redis

 

php-swoole-dockerfile

FROM php:8.0-fpm

RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
RUN sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

RUN apt-get update && apt-get install libbrotli-dev zlib1g-dev build-essential

#安装PHP扩展
RUN docker-php-ext-install pdo_mysql mysqli bcmath
RUN pecl install swoole

CMD ["php", "/var/www/html/swoole-script.php"]

 

python-django-dockerfile

# 指定使用的语言镜像
FROM python:3.10

# 设置环境变量,方便后续使用
ENV PYTHONUNBUFFERED 1

# 设置镜像内工作目录
WORKDIR /code

# 复制当前项目代码到工作目录中
COPY . /code/

# 安装项目依赖
#cd code
#cd hello_django
#pip freeze > requirements.txt
RUN pip install -r code/hello_django/requirements.txt

 

执行命令:

docker-compose up -d --build --remove-orphans

 

 

效果:

 

 

 

 

 

 

 

 

标签:code,RUN,apt,etc,compose,docker,php,dockerfile,搭建
From: https://www.cnblogs.com/xuxiaobo/p/18504286

相关文章

  • Docker 的用途是什么?
    在软件开发和部署领域,Docker已经成为了一个不可或缺的工具。那么,Docker究竟有哪些用途呢?让我们一起来深入了解一下。一、容器化应用程序可移植性:Docker允许将应用程序及其所有依赖项打包到一个容器中。这个容器可以在任何支持Docker的环境中运行,无论是在本地开发机器、测试......
  • Redis5.0.10集群搭建
    参考文档https://www.cnblogs.com/hmwh/p/10289138.htmlhttps://www.cnblogs.com/zgqbky/p/11792141.html以下操作均需在每台服务器上执行安装依赖关系yuminstallmakezlibopenssl*ImageMagick-develgcc*rubygems-y2、创建节点目录mkdir-p/opt/app/redis-cluste......
  • Redis4.0.12集群搭建
    服务器:节点1:10.10.175.55 端口:6379/7379节点2:10.10.175.56 端口:6379/7379节点3:10.10.175.57 端口:6379/7379以下操作均需在每台服务器上执行安装依赖关系yuminstallmakezlibopenssl*ImageMagick-develgcc*rubygems-y2、创建节点目录mkdir-p/usr/local/redis-cl......
  • openGussDb企业版5.0.1搭建
    openGussDb企业版5.0.1搭建官方文档地址:https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/ReleaseNotes/Releasenotes.html软件包&客户端下载地址:https://opengauss.org/zh/download/环境准备1、软件环境要求软件类型配置描述linux操作系统ARM:openEuler20.03LTS(推荐采用此......
  • 04 springboot-工程搭建案例(多环境部署,数据源, Swagger, 国际化,工具类)
    项目搭建模板(多环境切换)springboot系列,最近持续更新中,如需要请关注如果你觉得我分享的内容或者我的努力对你有帮助,或者你只是想表达对我的支持和鼓励,请考虑给我点赞、评论、收藏。您的鼓励是我前进的动力,让我感到非常感激。文章目录1项目截图2pom.xml3多环境配......
  • docker 常用命令 和docker-compose的常用命令
    1.docker常用命令创建容器:dockercreate启动容器:dockerstart[id]停止容器:dockerstop[id]停止全部运行的容器:dockerstop`dockerps-q`重启容器:dockerrestart[id]查看运行中的容器:dockerps查看所有容器(包括已停止的):dockerps-a删除容器:dockerrm容......
  • mysql5.7主从搭建
    mysql下主从(主主)搭建首先要准备两台服务器,一台主服务器(Master),另一台从服务器(Slave),然后要保证Master与Slave的版本要相同且Master不能高于Slave的版本,一般稳健的做法都是使其版本相同,因为MySQL不同版本之间的binlog(二进制日志)格式可能会不一样,最后会导致同步出现异常。参考地......
  • Linux下搭建mysql5.7数据库
    Linux下搭建mysql数据库参考网址:https://www.cnblogs.com/dengshihuang/p/8029092.html系统约定系统版本:Centos7.3 Mysql版本:5.7安装文件下载目录:/data/softwareMysql安装目录:/opt/app/mysql数据库保存位置:/opt/app/mysql/data/mysql日志保存位置:/opt/app/mysql/data/mysql/log/my......
  • Mysql主主搭建
    Mysql主主搭建参考网址:https://www.jianshu.com/p/0fadd3c54875IP1:10.10.133.117(主)IP2:10.10.133.118(从主)环境:Centos7.3前提是两台机器都装好了mysql,要同步的数据库数据相同,mysql版本尽量相同Mysql复制原理master服务器将数据的改变都记录到二进制binlog日志中,只要master上......
  • ELK日志管理系统搭建文档
    ELK日志管理系统搭建文档ELK是ElasticsearchLogstashkibana三个开源软件的组合来进行搭建.jianyi1jianyijianyi1建议架构:节点服务器部署程序备注节点1node-110.10.183.211Elasticsearch、kibana、head主节点节点2node-210.10.183.1......