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

描述

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

阅读 7.2k
2 个回答

我目前的结构是构建了一个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,是直接在宿主机上进行构建的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题