freedomofpress-dangerzone
RUNNING
History Source
SummaryIterations2Transcript29Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile671 bytes written
text24 lines · 671 chars
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 libxcb-keysyms1 libxkbcommon0 libfontconfig1 && \
    rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install poetry

WORKDIR /workspace

COPY . /workspace/

RUN poetry install --no-root
RUN poetry build
RUN python3 -m pip install dist/*.whl

CMD ["dangerzone-cli","--help"]
WRITEWriteFile· step #2
0s
.dockerignore227 bytes written
dockerignore24 lines · 227 chars
# Docker build ignore file
.git
.github
-tests
**/__pycache__/
*.pyc
*.pyo
*.pyd
venv/
env/
ENV/
dist/
build/
*.log
*.tmp
*.swap
mazette.lock
share/vendor/
share/tessdata/
__pycache__/
*.egg-info/
*.mypy_cache/
*.pytest_cache/
VERIFYVerifyBuild· step #3
10m 30s
VerifyBuildbuild_failed
Build error
Build timed out after 600s
VERIFYVerifyBuild· step #4
57s
VerifyBuildsmoke_failed
Concerns: The CMD uses dangerzone-cli --help; ensure the built wheel actually provides a console script named dangerzone-cli. If the entry point differs, the container may fail to start., The smoke test relies on a tests/smoke directory existing in the repo; if this path doesn't exist in the image, the test could fail.
Smoke [FAIL]: cd /workspace && pytest -q tests/smoke -x
  Output: sh: 1: pytest: not found
WRITEWriteFile· step #5
0s
Dockerfile759 bytes written
text26 lines · 759 chars
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 libxcb-keysyms1 libxkbcommon0 libfontconfig1 && \
    rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install poetry

WORKDIR /workspace

COPY . /workspace/

# Install runtime and test dependencies (including pytest for smoke tests)
RUN poetry install --no-root --with test

RUN poetry build
RUN python3 -m pip install dist/*.whl

CMD ["dangerzone-cli","--help"]
VERIFYVerifyBuild· step #6
4m 10s
VerifyBuildbuild_failed
Build error
Failing step and error
- Failing step: [9/9] RUN python3 -m pip install dist/*.whl (Dockerfile:23)
- Exact error message: 
  - ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device
  - OSError: [Errno 28] No space left on device (during tempfile cleanup)
- Exit code: 1
- Command that failed: python3 -m pip install dist/*.whl

Context and version info
- Base image involved: ubuntu:22.04 (as seen in prior steps)
- The wheel installation was building and installing dangerzone==0.10.0 and its dependencies (no root warnings noted as blockers in this step)
- Dependency constraints in play for the wheel:
  - PyMuPDF<2.0.0,>=1.25.3 (got pymupdf-1.27.2.3)
  - PySide6<7.0.0,>=6.7.1 (got pyside6-6.11.1)
  - Other Python deps: PySide6_Essentials==6.11.1, PySide6_Addons==6.11.1, etc.
- No version mismatch indicated; the resolved versions fit the declared constraints. The failure is due to disk space rather than incompatible packages.

Missing packages/files
- None mentioned. The failure is due to insufficient disk space ("No space left on device").

Recommendation (quick check)
- Free up disk space or allocate more space to the build environment, then re-run the last step. If space is constrained by image size, consider slimming dependencies or using a smaller base image.
WRITEWriteFile· step #7
0s
Dockerfile1226 bytes written
text39 lines · 1226 chars
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV QT_QPA_PLATFORM=offscreen

# Install base system dependencies
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 && \
    rm -rf /var/lib/apt/lists/*

# Install Poetry (Python packaging tool)
RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install poetry

WORKDIR /workspace

# Pre-copy the pyproject.toml to leverage Docker cache for dependencies
COPY pyproject.toml poetry.lock /workspace/

# Build in-project virtual environment to minimize image size
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
RUN poetry config virtualenvs.in-project true && \
    poetry install --no-root

# Copy the rest of the project
COPY . /workspace/

# Install the package into the in-project virtualenv
RUN poetry install

# Ensure the virtualenv bin directory is in PATH
ENV PATH=/workspace/.venv/bin:$PATH

# Expose nothing specific; container is intended to be run via CLI
CMD ["dangerzone-cli","--help"]
VERIFYVerifyBuild· step #8
8m 47s
VerifyBuildbuild_failed
Build error
Summary (under 1500 chars):

- Exact error message and exit code
  - OSError
  - [Errno 28] No space left on device
  - Cannot install pyside6-addons.
  - Cannot install pyside6-essentials.
  - Exit code: 1

- Failing command/step
  - [7/9] RUN poetry config virtualenvs.in-project true &&     poetry install --no-root

- Missing packages or files mentioned
  - pyside6-addons
  - pyside6-essentials

- Version mismatch info
  - No explicit version mismatch reported in the excerpt. The failure occurs during Poetry-based install inside a Python 3.10 environment (virtualenv at /workspace/.venv) while pulling PySide6-related wheels. Root cause appears to be disk space (No space left on device).
WRITEWriteFile· step #9
0s
Dockerfile1647 bytes written
text54 lines · 1647 chars
FROM ubuntu:22.04 as builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates && \
    rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install poetry

WORKDIR /workspace

COPY pyproject.toml poetry.lock /workspace/
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
RUN poetry config virtualenvs.in-project true && \
    poetry install --no-root

COPY . /workspace/

RUN poetry build

# In the final image, we will install the produced wheel from /workspace/dist

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

# Copy the built wheel from the builder
COPY --from=builder /workspace/dist/*.whl /tmp/dangerzone.whl

# Install the wheel (this will pull in dependencies as needed)
RUN python3 -m pip install /tmp/dangerzone.whl && \
    rm -f /tmp/dangerzone.whl && \
    rm -rf /root/.cache/pip

ENV PATH=/workspace/.venv/bin:$PATH

CMD ["dangerzone-cli", "--help"]
WRITEWriteFile· step #10
0s
Dockerfile1544 bytes written
text52 lines · 1544 chars
FROM ubuntu:22.04 as builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install poetry

WORKDIR /workspace

COPY pyproject.toml poetry.lock /workspace/
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
RUN poetry config virtualenvs.in-project true && \
    poetry install --no-root

COPY . /workspace/

RUN poetry build

# In the final image, we will install the produced wheel from /workspace/dist

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

COPY --from=builder /workspace/dist/*.whl /tmp/dangerzone.whl

RUN python3 -m pip install /tmp/dangerzone.whl && \
    rm -f /tmp/dangerzone.whl && \
    rm -rf /root/.cache/pip

ENV PATH=/workspace/.venv/bin:$PATH

CMD ["dangerzone-cli", "--help"]
VERIFYVerifyBuild· step #11
5m 06s
VerifyBuildbuild_failed
Build error
Summary:

- Exact error message and exit code
  - dpkg: unrecoverable fatal error, aborting:
    unable to flush /var/lib/dpkg/updates/tmp.i after padding: No space left on device
  - E: Sub-process /usr/bin/dpkg returned an error code (2)
  - Docker build exit code: 100 (build failed)

- Failing command/step
  - [stage-1 2/5] RUN apt-get update &&     apt-get install -y --no-install-recommends       python3 python3-pip python3-venv build-essential       libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0       libxcb-keysyms1 libxkbcommon0 libfontconfig1       ca-certificates &&     rm -rf /var/lib/apt/lists/*

- Missing packages or files mentioned
  - None reported; the failure is due to no space left on device during dpkg processing, not missing packages/files.

- Version mismatch information
  - Base image uses Ubuntu 22.04 (jammy) as part of ubuntu:22.04 lineage
  - Package versions shown (examples):
    - libllvm15: 1:15.0.7-0ubuntu0.22.04.3
    - python3.10-minimal: 3.10.12-1~22.04.15
    - python3-minimal: 3.10.6-1~22.04.1
  - No explicit version mismatch error is shown; the failure is space-related during installation.
WRITEWriteFile· step #12
0s
Dockerfile1474 bytes written
text48 lines · 1474 chars
FROM ubuntu:22.04 as builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

WORKDIR /workspace

COPY pyproject.toml poetry.lock /workspace/
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
RUN poetry config virtualenvs.in-project true && \
    poetry install --no-root

COPY . /workspace/

RUN poetry build

# In the final image, we will install the produced wheel from /workspace/dist

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

COPY --from=builder /workspace/dist/*.whl /tmp/dangerzone.whl

RUN python3 -m pip install /tmp/dangerzone.whl \
    && rm -f /tmp/dangerzone.whl \
    && rm -rf /root/.cache/pip

CMD ["dangerzone-cli","--help"]
VERIFYVerifyBuild· step #13
10m 03s
VerifyBuildbuild_failed
- VerifyBuild status: build_failed
- Core error: No space left on device during Poetry install; cannot install pymupdf, mypy, pyside6-essentials
- Failing command/step: Step [builder 7/9] RUN poetry config virtualenvs.in-project true && poetry install --no-root; Dockerfile location: builder stage 7
- Missing packages/files referenced: pymupdf, mypy, pyside6-essentials
- Evidence/log snippets: “Cannot install pymupdf.”, “Cannot install mypy.”, “Cannot install pyside6-essentials.”; root cause: OSError [Errno 28] No space left on device
- Environment details: Base image Ubuntu 22.04 (jammy) with Python 3.10.x; Poetry 2.4.1; pip 26.1.1; Python environment in /workspace/.venv
- Version mismatch note: No explicit package-version mismatch indicated; failure attributed to disk space, not incompatibility
- Final stage behavior: Copies wheel (*.whl) to /tmp/dangerzone.whl; if more than one wheel is produced, COPY may fail at build time
- CLI expectation: image relies on dangerzone-cli installed as a console script; if wheel name or entry-point differs, CMD may not resolve
READReadFile· step #14
26s
dangerzone/cli.py3782 chars · 78 lines
py78 lines · 3782 chars
Concise summary of the Dangerzone CLI tool (highlights + flow)

- Tool / entry point
  - Dangerzone CLI Python app using Click. Version shown via get_version() in banner; ASCII banner includes “Dangerzone v{version}” and https://dangerzone.rocks.

- Key imports / packages
  - External: click, colorama
  - Internal: args, errors, shutdown, startup, document (ARCHIVE_SUBDIR, SAFE_EXTENSION), isolation_providers (Container, Dummy, Qubes), DangerzoneCore, PodmanMachineManager, Settings, updater.install, util (get_version, replace_control_chars)

- CLI command and options
  - Command: run
  - Options:
    - --output-filename: validated by args.validate_output_filename; default is a filename ending with SAFE_EXTENSION
    - --ocr-lang: OCR language code
    - --archive: archive unsafe originals to ARCHIVE_SUBDIR
    - --unsafe-dummy-conversion: hidden flag (mapped to dummy_conversion)
    - filenames: 0+ input file paths (nargs=-1)
    - --debug: enable debug logs
    - --set-container-runtime: set or reset container runtime (special handling)
    - --linger: do not stop Podman VM after conversions (Windows/macOS)
    - --version: shows version
  - Validation: if multiple input files with --output-filename, error 1

- Core behavior
  - If --set-container-runtime provided:
    - value "default": unset custom runtime and print confirmation
    - other: set custom runtime, print confirmation, exit(0)
  - Must have at least one input filename; otherwise usage error
  - Provider selection:
    - dev + dummy conversion => Dummy
    - native QuBes conversion => Qubes
    - otherwise => Container(debug)
  - OCR language validation against dangerzone.ocr_languages; if invalid, print valid codes and exit(1)

- Startup / installation flow (when provider.requires_install())
  - Tasks prepared: WSLInstallTask, MachineStopOthersTask, MachineInitTask, MachineStartTask, UpdateCheckTask, ContainerInstallTask
  - StartupLogic(tasks).run()

- Document processing
  - If one input and output filename given: dangerzone.add_document_from_filename(input, output, archive)
  - If multiple inputs with output filename: error and exit(1)
  - Else: add each input document individually (archive option respected)

- Conversion & cleanup
  - Print header "Converting document(s) to safe PDF"
  - dangerzone.convert_documents(ocr_lang)
  - If installation was done and not linger, shutdown container and VM (ContainerStopTask, MachineStopTask)

- Output results
  - documents_safe: list of safe PDFs
  - documents_failed: list of failed inputs
  - On success: print "Safe PDF(s) created successfully" and list filenames (sanitized via replace_control_chars)
  - If archive is enabled, print message about moving unsafe originals to ARCHIVE_SUBDIR
  - On failure: print each failed input and exit(1)
  - Exit 0 if all succeed

- Logging
  - setup_logging: custom formatter; in dev mode (dangerzone_dev), use DEBUG with simple format; otherwise prefix non-INFO logs with level name

- Misc
  - args.override_parser_and_check_suspicious_options(run) hooks additional option checks
  - display_banner prints ASCII art + version line and URL

- Notable constants / references
  - ARCHIVE_SUBDIR
  - SAFE_EXTENSION
  - get_version() (for banner)
  - replace_control_chars (sanitizing output)

- Output patterns to expect
  - “Converting document(s) to safe PDF”
  - “Safe PDF(s) created successfully”
  - “Unsafe (original) documents moved to 'ARCHIVE_SUBDIR' subdirectory” (if archive)
  - “Failed to convert document(s)” with input filenames for failures

- No external errors shown in the excerpt; behavior relies on internal modules (startup/shutdown, provider classes, etc.)

Total length: concise, under 1500 chars, preserving actionable items like options, flow, and exit behavior.
WRITEWriteFile· step #15
0s
Dockerfile1558 bytes written
text51 lines · 1558 chars
FROM ubuntu:22.04 as builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv build-essential \
      libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

WORKDIR /workspace

COPY pyproject.toml poetry.lock /workspace/
ENV POETRY_VIRTUALENVS_IN_PROJECT=true
RUN poetry config virtualenvs.in-project true && \
    poetry install --no-root

COPY . /workspace/

RUN poetry build

# In the final image, we will install the produced wheel from /workspace/dist

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV QT_QPA_PLATFORM=offscreen

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      python3 python3-pip python3-venv libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 \
      libxcb-keysyms1 libxkbcommon0 libfontconfig1 \
      ca-certificates \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /workspace

COPY --from=builder /workspace/dist/*.whl /tmp/dangerzone.whl

RUN python3 -m pip install /tmp/dangerzone.whl \
    && rm -f /tmp/dangerzone.whl \
    && rm -rf /root/.cache/pip

# Ensure the console script is in PATH
ENV PATH=/usr/local/bin:/usr/bin:/bin:$PATH

CMD ["dangerzone-cli","--help"]
VERIFYVerifyBuild· step #16
2m 25s
VerifyBuildbuild_failed
Build error
- Failing step (command): [builder 7/9] RUN poetry config virtualenvs.in-project true &&     poetry install --no-root

- Exact error message and exit code:
  ERROR: process "/bin/sh -c poetry config virtualenvs.in-project true &&     poetry install --no-root" did not complete successfully: exit code: 1

- Other relevant error details shown Just before the failure:
  - OSError [Errno 28] No space left on device
  - Cannot install pyside6-essentials.
  - Cannot install pyside6-addons.

- Missing packages/files mentioned: Not missing files; failure is due to disk space (No space left on device) during installation of PySide6 components.

- Version mismatch information: None indicated in the log. Environment shows Ubuntu 22.04 and Python 3.10, with Poetry installing dependencies; no explicit version mismatch reported. The failure is due to insufficient disk space rather than incompatibilities.
02Iteration 2
WRITEWriteFile· step #1
0s
Dockerfile1520 bytes written
text55 lines · 1520 chars
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install system dependencies for building and running PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction

# Copy the full source tree
COPY . /workspace/

# Build the package and install the built wheel
RUN poetry build && \
    pip install --no-cache-dir dist/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]
WRITEWriteFile· step #2
0s
Dockerfile.env1520 bytes written
env55 lines · 1520 chars
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install system dependencies for building and running PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction

# Copy the full source tree
COPY . /workspace/

# Build the package and install the built wheel
RUN poetry build && \
    pip install --no-cache-dir dist/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]
WRITEWriteFile· step #3
0s
Dockerignore157 bytes written
text13 lines · 157 chars
$HOME/.cache/pip
**/.cache
**/__pycache__
**/.pytest_cache
**/.venv
**/.venv*/
**/dist/
**/build/
**/.mypy_cache
**/.ruff_cache
**/.Mazette
**/.pytest_cache
WRITEWriteFile· step #4
0s
.dockerignore64 bytes written
dockerignore6 lines · 64 chars
**/.git
**/node_modules
**/dist
**/__pycache__
**/.pytest_cache
VERIFYVerifyBuild· step #5
7m 36s
VerifyBuildunknown
Build status and context
- Status: build_failed
- Docker/poetry notes: Dockerfile relies on Poetry to install dependencies and build wheel; COPY pyproject.toml poetry.lock* /workspace/ assumes poetry.lock exists; GUI app built with PySide6 but run with QT_QPA_PLATFORM=offscreen; default CMD is dangerzone-cli --help.

Failing step and error
- Step: [7/10] RUN poetry config virtualenvs.create false &&     poetry install --no-root --no-interaction
- Command reference: the invocation shown at the error
- Overall error: ERROR: process "/bin/sh -c poetry config virtualenvs.create false &&     poetry install --no-root --no-interaction" did not complete successfully: exit code: 1
- Underlying OSEs: 
  - OSError [Errno 28] No space left on device at /usr/local/lib/python3.10/dist-packages/poetry/installation/wheel_installer.py:79 in write_to_fs
  - Cannot install pymupdf.
  - OSError [Errno 28] No space left on device at /usr/local/lib/python3.10/dist-packages/poetry/installation/wheel_installer.py:79 in write_to_fs
  - Cannot install numpy.
  - OSError [Errno 28] No space left on device at /usr/local/lib/python3.10/dist-packages/poetry/utils/helpers.py:240 in download_with_progress
  - Cannot install pyside6-essentials.
  - OSError [Errno 28] No space left on device at /usr/local/lib/python3.10/dist-packages/poetry/utils/helpers.py:240 in download_with_progress
  - Cannot install pyside6-addons.

Missing/misleading references
- Missing packages referenced due to disk space, not missing files: pymupdf, numpy, pyside6-essentials, pyside6-addons.
- No actual missing-file path cited.

Dependency/version notes
- Downgrades during Installing dependencies from lock file:
  - anyio: 4.13.0 -> 4.11.0
  - certifi: 2026.4.22 -> 2025.11.12
  - charset-normalizer: 3.4.7 -> 3.4.4
  - httpx: 0.28.1 -> 0.27.2
  - idna: 3.15 -> 3.11
  - importlib-metadata: 9.0.0 -> 8.7.0
  - packaging: 26.2 -> 25.0
  - platformdirs: 4.9.6 -> 4.5.0

Actionable items inferred
- Free disk space on build host/container (space error is the root cause).
- Ensure poetry.lock exists and is accessible; consider cleaning cache or increasing build image space.
- If needed, adjust Docker build to limit simultaneous large downloads or pre-cache wheels.
WRITEWriteFile· step #6
0s
Dockerfile2434 bytes written
text91 lines · 2434 chars
FROM ubuntu:22.04 AS builder

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install system dependencies for building PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction

# Copy the full source tree
COPY . /workspace/

# Build the package (wheel)
RUN poetry build

# Install the built wheel into the builder's environment (to reduce final image needs)
RUN pip install --no-cache-dir dist/*.whl

# Final stage
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (smaller footprint than build tools)
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-icccm4 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Copy the built wheel from the builder stage
COPY --from=builder /workspace/dist/*.whl /tmp/

# Install the built wheel
RUN python3 -m pip install --no-cache-dir /tmp/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]
WRITEWriteFile· step #7
0s
Dockerfile.in42 bytes written
in4 lines · 42 chars
FROM ubuntu:22.04

# placeholder template
VERIFYVerifyBuild· step #8
3m 49s
VerifyBuildbuild_failed
Build error
Exact error message and exit code
- ERROR: process "/bin/sh -c poetry config virtualenvs.create false &&     poetry install --no-root --no-interaction" did not complete successfully: exit code: 1
- Underlying cause repeatedly shown: OSError [Errno 28] No space left on device

Failing command/step
- [builder 7/10] RUN poetry config virtualenvs.create false &&     poetry install --no-root --no-interaction
- Dockerfile line: RUN poetry config virtualenvs.create false && poetry install --no-root --no-interaction

Missing packages or files mentioned
- Packages that could not be installed due to the space issue:
  - types-pygments
  - pyside6-essentials
  - pyside6-addons
  - types-docutils
- Note: The errors are triggered by disk space exhaustion rather than missing files; several packages fail to install because of No space left on device during Poetry wheel/download steps.

Version mismatch info
- Dependency reconciliation visible as version downgrades to satisfy the lockfile (not a hard mismatch, but intentional downgrades):
  - Downgrading anyio (4.13.0 -> 4.11.0)
  - Downgrading certifi (2026.4.22 -> 2025.11.12)
  - Downgrading charset-normalizer (3.4.7 -> 3.4.4)
  - Downgrading httpx (0.28.1 -> 0.27.2)
  - Downgrading idna (3.15 -> 3.11)
  - Downgrading importlib-metadata (9.0.0 -> 8.7.0)
  - Downgrading packaging (26.2 -> 25.0)
  - Downgrading platformdirs (4.9.6 -> 4.5.0)
- Also noted: setuptools updated during installation (59.6.0 -> 80.9.0)

Root cause (summary)
- The build encounters No space left on device during Poetry-based dependency installation, causing multiple package installations to fail and ultimately the Poetry step to exit with code 1.
WRITEWriteFile· step #9
0s
Dockerfile2539 bytes written
text95 lines · 2539 chars
FROM ubuntu:22.04 AS builder

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Reduce space usage for caches
ENV POETRY_CACHE_DIR=/tmp/poetry-cache
ENV PIP_CACHE_DIR=/tmp/pip-cache

# Install system dependencies for building PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction

# Copy the full source tree
COPY . /workspace/

# Build the package (wheel)
RUN poetry build

# Install the built wheel into the builder's environment (to reduce final image needs)
RUN pip install --no-cache-dir dist/*.whl

# Final stage
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (smaller footprint than build tools)
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-icccm4 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*;

# Copy the built wheel from the builder stage
COPY --from=builder /workspace/dist/*.whl /tmp/

# Install the built wheel
RUN python3 -m pip install --no-cache-dir /tmp/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]
VERIFYVerifyBuild· step #10
5m 38s
VerifyBuildunknown
Summary (under 1500 chars):

- Build status: build_failed

- Failing step:
  - Builder step [builder 2/10]: RUN set -eux;     apt-get update;     apt-get install -y --no-install-recommends         python3 ... tzdata;     rm -rf /var/lib/apt/lists/*;

- Exact error messages:
  - "[Errno 28] No space left on devicedpkg: error processing package python3.10 (--configure):"
  - "dpkg: unrecoverable fatal error, aborting:  unable to fill /var/lib/dpkg/updates/tmp.i with padding: No space left on device"
  - "E: Sub-process /usr/bin/dpkg returned an error code (2)"
  - The overall build ends: "failed to solve: ... exit code: 100"

- Missing packages or files:
  - "Package python3.10 is not configured yet." (dpkg: dependency problems prevent configuration of python3)
  - "python3 depends on python3.10 (>= 3.10.6-1~); however: Package python3.10 is not configured yet."

- Version mismatch info:
  - Observed mixed Python 3.10 component versions during apt install:
    - python3-minimal: 3.10.12-1~22.04.15 (seen during install)
    - Later: python3-minimal: 3.10.6-1~22.04.1 (selected/unpacked later)
  - Other components show 3.10.12-1~22.04.15 vs 3.10.6-1~22.04.1, indicating a version mismatch in Ubuntu jammy.

- Root cause:
  - Install ran out of disk space during apt/dpkg, causing multiple packages (notably python3.10 and stdlib) to fail configuration and terminate the build.

- Final status:
  - Build failed with exit code 100.

- Additional actionable notes (from Concerns):
  - COPY --from=builder /workspace/dist/*.whl /tmp/ relies on the wheel existing at that path; pin to exact filename or use an explicit path.
  - Final image installs a broad set of runtime dependencies (including many X11/GL libs); to reduce size, consider narrowing dependencies once PySide6 works with a minimal set.
  - CMD defaults to dangerzone-cli --help; if the intended default is a GUI app or a different CLI entrypoint, ensure the entrypoint matches the installed console script in the wheel.
WRITEWriteFile· step #11
0s
Dockerfile2865 bytes written
text103 lines · 2865 chars
FROM ubuntu:22.04 AS builder

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Reduce space usage for caches
ENV POETRY_CACHE_DIR=/tmp/poetry-cache
ENV PIP_CACHE_DIR=/tmp/pip-cache

# Install system dependencies for building PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*; \
    apt-get clean; \
    rm -rf /var/cache/apt/archives/*; \
    rm -rf /usr/share/doc/* /usr/share/man/* /usr/share/locale/*

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction

# Copy the full source tree
COPY . /workspace/

# Build the package (wheel)
RUN poetry build

# Install the built wheel into the builder's environment (to reduce final image needs)
RUN pip install --no-cache-dir dist/*.whl

# Optional cleanup to reduce image size before final stage
RUN rm -rf /root/.cache/pip /root/.cache/pypoetry

# Final stage
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (smaller footprint than build tools)
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-icccm4 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*; \
    apt-get clean; \
    rm -rf /usr/share/doc/* /usr/share/man/* /usr/share/locale/*

# Copy the built wheel from the builder stage
COPY --from=builder /workspace/dist/*.whl /tmp/

# Install the built wheel
RUN python3 -m pip install --no-cache-dir /tmp/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]
VERIFYVerifyBuild· step #12
4m 57s
VerifyBuildunknown
- Build status: build_failed

- Concerns
  - COPY --from=builder /workspace/dist/*.whl /tmp/ may fail if the glob does not match (Docker glob handling)
  - COPY pyproject.toml poetry.lock* /workspace/ relies on poetry.lock being present; if lock file is absent, the glob may fail during build
  - Final CMD assumes a console script named dangerzone-cli exists; entry point may differ if wheel packaging changes

- Build error (exact messages and exit code)
  - [Errno 28] No space left on devicedpkg: error processing package python3.10 (--configure): installed python3.10 package post-installation script subprocess returned error exit status 1
  - dpkg: unrecoverable fatal error, aborting: unable to flush /var/lib/dpkg/updates/tmp.i after padding: No space left on device
  - Exit code: 100

- Failing command/step
  - Dockerfile step: RUN that installs system dependencies
  - Command:
    RUN set -eux; apt-get update; apt-get install -y --no-install-recommends python3 python3-pip python3-venv build-essential libgl1-mesa-dri libgl1-mesa-glx libx11-6 libxcb1 libxcb-icccm4 libxcb-image0 libxcb-render0 libxcb-render-util0 libxcb-keysyms1 libxkbcommon0 libfontconfig1 ca-certificates tzdata; rm -rf /var/lib/apt/lists/*; apt-get clean; rm -rf /usr/share/doc/* /usr/share/man/* /usr/share/locale/*
  - Failure occurs during apt/dpkg installation in the builder (exit 100)

- Missing packages or files
  - No missing package files mentioned; log indicates disk space exhaustion (No space left on device)

- Version mismatch info
  - python3-minimal 3.10.6-1~22.04.1
  - python3.10-minimal 3.10.12-1~22.04.15
  - libpython3-stdlib 3.10.12-1~22.04.15 (and later 3.10.6-1~22.04.1 appears)
  - python3 3.10.6-1~22.04.1
  - Indicates mixed/inconsistent Python-related package versions being configured in the same apt transaction (e.g., 3.10.6 vs 3.10.12)

- Notes
  - Root cause appears to be insufficient disk space during apt/dpkg, not a single missing file. Error lines show “No space left on device” and a dpkg fatal error while processing python3.10, leading to exit code 100.
WRITEWriteFile· step #13
0s
Dockerfile2874 bytes written
text103 lines · 2874 chars
FROM ubuntu:22.04 AS builder

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Reduce space usage for caches
ENV POETRY_CACHE_DIR=/tmp/poetry-cache
ENV PIP_CACHE_DIR=/tmp/pip-cache

# Install system dependencies for building PySide6-based GUI apps
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        build-essential \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*; \
    apt-get clean; \
    rm -rf /var/cache/apt/archives/*; \
    rm -rf /usr/share/doc/* /usr/share/man/* /usr/share/locale/*

# Install Poetry (Python dependency manager)
RUN python3 -m pip install --no-cache-dir --upgrade pip
RUN python3 -m pip install --no-cache-dir poetry

# Build and install the Dangerzone project from source
WORKDIR /workspace

# First install dependencies (without building/installing the package itself)
COPY pyproject.toml poetry.lock* /workspace/
RUN poetry config virtualenvs.create false && \
    poetry install --no-root --no-interaction --no-dev

# Copy the full source tree
COPY . /workspace/

# Build the package (wheel)
RUN poetry build

# Install the built wheel into the builder's environment (to reduce final image needs)
RUN pip install --no-cache-dir dist/*.whl

# Optional cleanup to reduce image size before final stage
RUN rm -rf /root/.cache/pip /root/.cache/pypoetry

# Final stage
FROM ubuntu:22.04

# Non-interactive frontend for Debian/Ubuntu
ENV DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies (smaller footprint than build tools)
RUN set -eux; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-pip \
        python3-venv \
        libgl1-mesa-dri \
        libgl1-mesa-glx \
        libx11-6 \
        libxcb1 \
        libxcb-image0 \
        libxcb-render0 \
        libxcb-render-util0 \
        libxcb-icccm4 \
        libxcb-keysyms1 \
        libxkbcommon0 \
        libfontconfig1 \
        ca-certificates \
        tzdata; \
    rm -rf /var/lib/apt/lists/*; \
    apt-get clean; \
    rm -rf /usr/share/doc/* /usr/share/man/* /usr/share/locale/*

# Copy the built wheel from the builder stage
COPY --from=builder /workspace/dist/*.whl /tmp/

# Install the built wheel
RUN python3 -m pip install --no-cache-dir /tmp/*.whl

# Ensure GUI can run headless (tests and CI may use offscreen rendering)
ENV QT_QPA_PLATFORM=offscreen

WORKDIR /workspace

# Default to showing CLI help if no arguments are provided
CMD ["dangerzone-cli", "--help"]