Skip to content

Feature: Compose Build Directive #1124

@SantiagoSchez

Description

@SantiagoSchez

Bug Description

When I click on the "Redeploy" button within a project, if the service depends on a local Dockerfile instead of a public image in a registry, the Dockerfile is not rebuilt so as to pull its latest image. For example, I have a custom n8n service like this:

compose.yaml

services:
  n8n:
    build:
      context: .
      dockerfile: Dockerfile
  ...

Dockerfile:

FROM n8nio/n8n:latest

USER root

RUN apk update && apk add --no-cache \
    alsa-utils \
    alsa-lib \
    alsa-plugins \
    mpg123

USER node

WORKDIR /home/node

EXPOSE 5678

Latest n8nio/n8n should be pulled, but it's not (container is not rebuilt according to the Dockerfile).

Steps To Reproduce

  1. Go to "Projects"
  2. Select a project with at least a service built from a local Dockerfile
  3. Click on "Redeploy"

Expected Behavior

Image stated in the Dockerfile should be pulled (updated).

"Redeploy" button should issue a command like this to fully update everything in the compose:

docker compose build --pull && \ # build and pull images in services built from Dockerfiles
  docker compose pull && \ # pull images from services in compose.yaml 
  docker compose up -d

Maybe a good approach would be to add a checkbox in the "Redeploy" confirm dialog to update Dockerfile images. For example:

[x] Rebuild and update images in Dockerfiles too

Actual Behavior

Container is re-created with the existing image version in the Dockerfile; latest image is not pulled from remote source.

Screenshots

No response

Arcane Version

v1.10.1

Operating System

macOS

Browser

Chrome

Docker Version

28.4.0

Additional Context

No response

Metadata

Metadata

Assignees

Labels

completedfeatureNew feature or enhancement to exsisting feature

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions