嗨,大家好,我有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/
对不起,我的英语不好
答案 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
安装的扩展名
我希望这会有所帮助。