是否可以仅从`docker-compose.yml`构建`redis`?

问题描述 投票:0回答:1

我有一个 docker compose 文件,它有 2 个服务

redis
&
web
:

docker-compose.yml

version: "3.8"

services:
  redis:
    image: redis:7.2.4-alpine
    container_name: redis_web_dev
    env_file:
      - ../../.env.development
    restart: always
    ports:
      - 6379:6379
    command: redis-server --save 60 1 --loglevel warning --requirepass 123abc
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 30s
      retries: 50
    volumes:
      - redis_data:/data
  web:
    image: nextjs-sqlite:0.0.1
    build:
      context: ../../
      dockerfile: docker/production/Dockerfile
      target: development
    container_name: web_dev
    env_file:
      - ../../.env.development
    ports:
      - 3000:3000
    volumes:
      # - .:/app
      - ../../data:/data
    restart: unless-stopped
    depends_on:
      redis:
        condition: service_healthy
    command: sh -c "sh ./scripts/run.sh"
volumes:
  redis_data:
    driver: local

我只想构建

redis
,所以我使用:

docker compose -f docker/development/docker-compose.yml build redis

但它没有显示任何输出或错误。它只是关闭终端。

如果我运行

web
,它会给出一些输出并开始构建:

docker compose -f docker/development/docker-compose.yml build web

有什么问题吗?

web
取决于
redis
,但不是相反,所以它应该有效,但事实并非如此。

目前,我正在构建整个东西:

docker compose -f docker/development/docker-compose.yml build

然后只开始

redis

docker compose -f docker/development/docker-compose.yml up -d redis

这非常有效。

但我很好奇我应该这样做吗?或者是否可以从

redis
构建
docker-compose.yml
然后启动它?

docker docker-compose redis
1个回答
0
投票

正如 Teemu 在评论中所说,redis 使用现有映像,因此无需构建任何内容,退出是预期的行为。

我可以直接运行

docker compose -f docker/development/docker-compose.yml up -d redis
来启动 Redis 服务器,其中
redis
是我的服务名称。无需提前构建。

© www.soinside.com 2019 - 2024. All rights reserved.