无法使用 Dockerfile 在 docker 容器中安装包

Can't install packages in docker container using Dockerfile

我想通过 Dockerfile 在 docker 映像中安装一个包。

docker-compose.yml:

version: "3.5"
services:
  transmission:
    build:
      context: .
      dockerfile: Dockerfile
    image: ghcr.io/linuxserver/transmission
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./config/public:/config
      - /data:/data
    ports:
      - 60020:60020
      - 60010:60010
      - 60010:60010/udp
    restart: unless-stopped
    network_mode: host

Docker 文件:

RUN apk update
RUN apk add --no-cache flac

在 Dockerfile 中,我指定要安装 flac 包。 之后我 运行 docker-compose up -dsudo docker exec -it transmission bash 检查它是否存在,但它不存在。

我做错了什么?

您的 Dockerfile 无效(如果您发布了整个文件)。您还在 docker-compose 文件中指定了 build:image: 标签,当您想要构建图像并在构建时给它一个标签时使用。

我认为您想要完成的是将 flac 添加到传输图像中。为此,您需要像这样创建一个 Dockerfile

FROM ghcr.io/linuxserver/transmission
RUN apk update
RUN apk add --no-cache flac

然后在您的 docker-compose 文件中,像这样删除图像规范

version: "3.5"
services:
  transmission:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./config/public:/config
      - /data:/data
    ports:
      - 60020:60020
      - 60010:60010
      - 60010:60010/udp
    restart: unless-stopped
    network_mode: host