H5W3
当前位置:H5W3 > docker > 正文

【Docker】外部的composer如何使用容器的PHP?

描述

如果不想把composer直接制作到PHP的镜像中. 想直接安装在主机应该如何来使用容器的PHP呢?

回答

我目前的结构是构建了一个composer容器自动去构建,如果你的宿主机有composer你可以直接进入composer.json下使用就可以了,挂载了Volume数据卷会同步在容器内部的。

下面是我现在使用的compose文件

version:  '3.0'
services:
##基础环境
  nginx:
    image: nginx:1.13.3
    volumes:
      - /etc/localtime:/etc/localtime:ro
#网站目录
      - ./app:/var/www/html
      - ./dockerfiles/nginx/conf.d:/etc/nginx/conf.d:ro
#日志文件
      - ./logs/nginx:/var/log/nginx
    links:
      - "php-fpm:php-fpm"
    ports:
      - "80:80"
    command: nginx -g 'daemon off;'

  mysql-db:
    image: mysql:5.5
#很重要导入到处数据
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./data/mysql:/var/lib/mysql:rw
      - ./logs/mysql:/var/lib/mysql-logs:rw
      - ./dockerfiles/mysql/conf.d:/etc/mysql/conf.d:ro
    environment:
        MYSQL_ROOT_PASSWORD: zhaojun
        MYSQL_DATABASE: lottery_api_sale
        MYSQL_USER: zhaojun
        MYSQL_PASSWORD: zhaojun
    ports:
      - "3306:3306"
    deploy:
      restart_policy:
        condition: any
  redis-db:
    image: redis
    volumes:
      - ./data/redis:/data
      - /etc/localtime:/etc/localtime:ro
    deploy:
      restart_policy:
        condition: any
  php-fpm:
    build: ./dockerfiles/php/
    restart: always
    environment:
      TP_APP_DEBUG: 'true'
    volumes:
#网站目录
      - ./app:/var/www/html:rw
#配置文件
      - ./dockerfiles/php/php.ini:/usr/local/etc/php/php.ini:ro
      - ./dockerfiles/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro
#挂载站点日志
      - ./logs/php-fpm:/var/log/php-fpm:rw
    depends_on:
      - mysql-db
      - redis-db
    links:
      - mysql-db:mysql-db
      - redis-db:redis-db
    command: php-fpm
    
##附加扩展安装器
  composer:
    image: composer:1.4.2
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./app:/app:rw
    working_dir: /app/webroot
    deploy:
      restart_policy:
        condition: none
    command: composer install
  bower:
    image: digitallyseamless/nodejs-bower-grunt
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./app:/app:rw
    working_dir: /app/webroot
    deploy:
      restart_policy:
        condition: none
    command: bower install

之前我没有构建bower composer,是直接在宿主机上进行构建的

@Godtoy 大神,帮我看看我的问题:
【Docker】外部的composer如何使用容器的PHP?
虽然php的docker里已经安装了gd库,并且phpinfo也能查看得到,但是为啥这里我装其他类库的时候提示没找到gd库呢,我的php,mysql,nginx全是在docker里,composer也是拉的最新的docker。实在不明白是啥情况了,是不是也composer也要挂接php的docker呢?如何挂接的呢。。。

本文地址:H5W3 » 【Docker】外部的composer如何使用容器的PHP?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址