【问题标题】:ERROR: Service 'ubuntu' failed to build: The command '/bin/sh -c apt-get update错误:服务 'ubuntu' 未能构建:命令 '/bin/sh -c apt-get update
【发布时间】:2020-06-06 08:12:20
【问题描述】:

当我执行命令docker-compose up --build -d

我收到以下错误:

E: 找不到包 php7.4 E: 找不到任何包 glob 'php7.4' E:通过正则表达式 'php7.4' 找不到任何包 E:无法 定位包 php7.4-fpm E: 无法通过 glob 找到任何包 'php7.4-fpm' E:通过正则表达式 'php7.4-fpm' 找不到任何包 错误: 服务“ubuntu”构建失败:命令“/bin/sh -c apt-get” 更新 && apt-get install -y curl zip 解压 php7.4 php7.4-fpm gettext-base sudo' 返回一个非零代码: 100

您能帮我看看我的dockerfiledocker-compose.yml 有什么问题吗?

这是我的dockerfile

FROM  ubuntu:18.04

# ENV PORT=80
# ENV FPMSTREAM=9000

RUN apt-get update \
    && apt-get install -y curl zip unzip \
            php7.4 php7.4-fpm \
            gettext-base sudo



COPY ./webapp /var/www/webapp

WORKDIR /var/www/webapp

ADD default.conf /etc/nginx/conf.d/default.conf

RUN chown -R www-data:www-data /var/www && \
  chmod -R 775 /var/www && \
  useradd -m docker && echo "docker:docker" | chpasswd && \
  adduser docker sudo

USER docker

docker-compose.yml

version: "3.8"
services:

  ubuntu:
    build: .
    container_name: ubuntu-container
    external_links:
      - nginx
      - db

  nginx:
    image: nginx:stable
    container_name: nginx-container
    ports:
      - "80:80"
    expose:
      - 9000
    volumes:
      - ./code:/var/www/webapp
      - ./default.conf:/etc/nginx/conf.d/default.conf

  db:
    image: mysql:8.0
    container_name: mysql-container
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    env_file:
      - .env
    volumes:
      - ./mysql-data:/var/lib/mysql
    expose:
      - 3306
    ports:
      - "3306:3306"

【问题讨论】:

  • 为什么不直接使用docker PHP镜像的基础镜像呢?而不是 ubuntu?

标签: docker ubuntu docker-compose dockerfile


【解决方案1】:

您的问题是您尝试安装的 PHP 版本在 Ubuntu 18.04 中不可用。

最新的可用版本是 7.2,因此您需要将 php7.4 php7.4-fpm 替换为 php php-fpmphp7.2 php7.2-fpm

【讨论】:

  • 我不明白这个,如果提到,他特别想要php7.4,那么php7.2如何被接受为答案
  • @nischaygoyal 他没有说他想要 PHP 7.4。他问他的 Dockerfile 出了什么问题,我回答了这个问题。如果他接受,猜想是因为它满足了他的需求。你没有回答问题,只是说“试试这个”,但答案不仅仅是复制和粘贴,它正在解释问题所在。
【解决方案2】:

请尝试以下Dockerfile 进行构建

FROM  ubuntu:18.04

# ENV PORT=80
# ENV FPMSTREAM=9000

#Add Repos for PHP modules
RUN apt-get update \
    && apt -y install software-properties-common \
    && add-apt-repository ppa:ondrej/php 

RUN apt-get update \
    && apt-get install -y curl zip unzip \
            php7.4 php7.4-fpm \
            gettext-base sudo



COPY ./webapp /var/www/webapp

WORKDIR /var/www/webapp

ADD default.conf /etc/nginx/conf.d/default.conf

RUN chown -R www-data:www-data /var/www && \
  chmod -R 775 /var/www && \
  useradd -m docker && echo "docker:docker" | chpasswd && \
  adduser docker sudo

USER docker

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 2017-12-21
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 2017-05-05
    • 2017-07-04
    相关资源
    最近更新 更多