从另一个容器中的php文件加载Docker容器中的文件

时间:2018-01-11 18:59:34

标签: php docker

我不确定这是否可行。

我有一个容器,可以设置一个php / apache环境来运行一个小应用程序。该应用程序建立了外部数据库连接,但我打算在其他容器中使用该连接。

我的想法是为实用程序创建另一个容器,例如建立数据库连接,这样我就不必管理每个容器中的连接信息。

使用docker-compose我同时运行两个容器,但app容器无法读取我的实用程序容器中带有数据库连接信息的文件。

App Dockerfile

FROM php:7.2-apache

RUN apt-get update
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN a2enmod rewrite

COPY /src /var/www/html
COPY /conf /usr/local/lib/php/app-lib/conf

实用工具Dockerfile

FROM php:latest

RUN apt-get update
RUN docker-php-ext-install mysqli pdo pdo_mysql

COPY /src /usr/local/lib/php/app-lib/utilities

docker-compose.yml

version: "3"
services:
  inventory:
    image: repo/inventory:latest
    volumes:
     - ./src:/var/www/html
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    expose:
      - "80"
    ports:
      - "80:80"
    networks:
      - appnet
    depends_on:
      - utilities
  utilities:
    image: repo/utilities:latest
    volumes:
      - ./src:/usr/local/lib/php/app-lib/utilities
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.5"
          memory: 256M
      restart_policy:
        condition: on-failure
    ports:
      - "8081:80"
    networks:
      - appnet
networks:
  appnet:

PHP文件

die((file_exists('/usr/local/lib/php/app-lib/utilities/db.php') ? 'exists' : 'not found'));

当然,当我点击http://127.0.0.1时,它输出“未找到”,因此它不会从实用程序容器中加载文件。我不确定我做错了什么或者这是不可能的。

我正在将单片API转换为服务,并且我创建了一些用于在端点之间共享函数的类,我希望我可以使用容器执行类似操作,因此我不会在多个容器中管理相同的代码

0 个答案:

没有答案