我的Docker Compose文件无法正常工作

时间:2019-01-27 13:59:27

标签: docker docker-compose

嗨,大家好,我有2个docker-compose文件,但两个文件都无法正常运行 get_json() 错误,请告诉我任何机构如何解决它,我给您撰写文件的内容

(组合文件1)

db:
  build: ./mysql
  volumes:
    - /opt/containers/personal/mysql:/var/lib/mysql
web:
  build: ./web
  ports:
    - 80:80
  volumes:
    - /opt/containers/personal/php:/var/www/html
  links:
    - db:db

(组合文件2)

version: "3"
services:
  nginx:
    build: ./nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - /opt/containers/personal/nginx/certs:/certs
    depends_on: 
      - web
    networks:
      - webdbnet
  web:
    build: ./web
    volumes:
      # Example of host volume mounted in container
      # - /opt/containers/personal/php:/var/www/html
      # Example of docker volume mounted in container
      - web-data:/var/www/html
    networks:
      - webdbnet
  db:
    # build: ./mysql
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    volumes:
      - /opt/containers/personal/mysql:/var/lib/mysql
    networks:
      - webdbnet

networks:
  webdbnet:

volumes:
  web-data:

(这是我的内置DOCKER文件内容)

FROM php:7-apache

RUN apt-get update && apt-get install -y \
      libmcrypt-dev \
      libfreetype6-dev \
      libjpeg-dev \
      libpng-dev \
    && a2enmod rewrite expires \
    && pecl install mcrypt-1.0.1 \
    && docker-php-ext-install gd mysqli opcache iconv \
    && docker-php-ext-configure gd \
       --with-freetype-dir=/usr/include/ \
       --with-jpeg-dir=/usr/include/ \
       --with-png-dir=/usr/include/ \
    && docker-php-ext-enable mcrypt mysqli

COPY index.html /var/www/html/
COPY index.php  /var/www/html/

对不起,我的英语不好

2 个答案:

答案 0 :(得分:1)

您似乎为mcrypt运行了错误的PHP版本。

尝试更换

FROM php:7-apache

使用

FROM php:7.2.14-apache-stretch

在您的构建文件中。

php:7-apache将您带到最新版本,即7.3.1,而mcrypt似乎想要7.2。*

答案 1 :(得分:0)

当您为php使用正式映像时,对于本示例,尝试在该命令后安装pecl install mcrypt-1.0.1,则需要将此行添加到

RUN pecl install mcrypt

RUN echo "extension=mcrypt.so" >> /usr/local/etc/php/conf.d/docker-php-ext-intl.ini

*。so文件启用仅不需要通过docker-php-ext-install安装的扩展名

我希望这会有所帮助。