编辑器在 docker 容器中不起作用:"https://packagist.org/packages.json"不包含有效的 JSON



我有一个运行Symfony应用程序的docker容器(工作正常(。作曲家安装/要求命令(例如 容器内的 composer require annotations ( 经常失败并显示以下错误:

[SeldJsonLintParsingException]                                        
  "https://packagist.org/packages.json" does not contain valid JSON       
  Parse error on line 1:                                                  
  \\\u��n[7
                ���                                                    
  ^                                                                       
  Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

我真的无法找到命令何时成功或失败的模式,这似乎是完全随机的。我觉得这可能是缓存/网络的事情,因为它通常会工作一段时间,然后停止工作一段时间,但我不确定。作曲家命令在主机系统上工作正常(Ubuntu 17.10/18.04 - 认为更新可能会有所帮助,但没有区别(。容器中的作曲家的所有其他内容都可以正常工作。无论我在容器中打开 shell 并在那里运行命令还是通过 docker-compose exec 运行命令,结果都是相同的。

这是我的 Dockerfile:

FROM alpine:3.6
RUN apk add --update 
    php7-fpm 
    php7-apcu 
    php7-ctype 
    php7-curl 
    php7-dom 
    php7-gd 
    php7-iconv 
    php7-imagick 
    php7-json 
    php7-intl 
    php7-mcrypt 
    php7-mbstring 
    php7-opcache 
    php7-openssl 
    php7-pdo 
    php7-pdo_mysql 
    php7-mysqli 
    php7-xml 
    php7-zlib 
    php7-phar 
    php7-tokenizer 
    php7-session 
    php7-xmlwriter 
    php7-simplexml 
    make 
    curl
RUN rm -rf /var/cache/apk/* && rm -rf /tmp/*
RUN curl --insecure https://getcomposer.org/composer.phar -o /usr/bin/composer && chmod +x /usr/bin/composer
ADD symfony.ini /etc/php7/php-fpm.d/
ADD symfony.ini /etc/php7/cli/conf.d/
ADD symfony.pool.conf /etc/php7/php-fpm.d/
CMD ["php-fpm7", "-F"]
WORKDIR /var/www/symfony
EXPOSE 9000

我通过 docker-compose 运行它,它将一个卷挂载到/var/www/symfony 并公开端口:

version: '2.1'
services:
  php:
    build: .
    volumes:
      - ./symfony:/var/www/symfony
    ports:
      - 9000:9000

我如何让它工作?我不知道我需要激活的任何设置才能使作曲家能够正确连接?

你可以把它添加到你的 DockerFile :

RUN composer config --global repo.packagist composer https://packagist.org

你也应该添加到 Dockerfile

RUN apk update && apk add ca-certificates && update-ca-certificates && apk add openssl

并在安装作曲家后

RUN composer self-update

相关内容

  • 没有找到相关文章

最新更新