Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@1337-server
Copy link
Member

Change base image of arm-ui devel image

Description

Changed build base image, as we don't need such a large image if we are only running one service (frontend)
- Image shrunk from 1GB -> 160MB

Removed comments from Dockerfile
- Way to many (IMHO) and was harder to read

Broke UI requirements to its own file, to help track requirements separately
- It will be easier to track, and help keeps things manageable to have separate requirements for each container

Removed comments from health check, also udev isnt needed in UI container so was removed.
- Comments didnt really help, as for the ripper we know already what needs checking for the container to work, so the comments dont help

Fixes # None

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Build, ran on docker.

  • Docker
  • Other (Please state here)

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have tested that my fix is effective or that my feature works

Changelog:

Include the details of changes made here
Summary of changes

  • Dockerfile-UI

    • Rewritten to use python:3.12.1-alpine with a builder stage to compile/install Python deps and a minimal final runtime stage.
    • Sets ARM_UID/ARM_GID to 1000, PYTHONUNBUFFERED and PIP_NO_CACHE_DIR.
    • Installs build deps in the builder and copies installed packages into the final image.
    • Creates non-root arm user (uid/gid 1000) and runs the container as USER arm.
    • Copies repo into /opt/arm and sets git safe.directory.
    • Removes Debian/my_init/runit and ripper-specific install steps from the UI image.
    • Default CMD changed to run the UI directly: python3 /opt/arm/arm/runui.py
      requirements_ui.txt (new)
    • New, UI-focused dependency list (Flask 3.x, Werkzeug, Jinja2, SQLAlchemy + Alembic/Flask-Migrate, mysql-connector-python, waitress, psutil, pyudev, Flask-Login, Flask-WTF, bcrypt, etc.).
      Helps separate UI deps from ripper/tooling dependencies.
    • Added a copy comments.json as arm now looks for it inside /arm/app/comments.json
  • docker-compose.yml

    • ARM_UID and ARM_GID environment variables updated from 1001 -> 1000.
    • arm-db user mapping updated to 1000:1000.
  • temp_healthcheck.sh

    • Simplified to only perform an HTTP check against the UI endpoint (removed udev and ripper checks).

Logs

Attach logs from successful test runs here

…e only running one service

Removed comments from dockerfile

broke ui requirements to its own file, to help track reqs separately

Removed comments from health check, also udev isnt needed in ui container.
@1337-server 1337-server added this to the 3.0 milestone Oct 19, 2025
@1337-server 1337-server added this to v3.0 Oct 19, 2025
@1337-server
Copy link
Member Author

Currently, we are using phusion/baseimage as a base for the front end, but there is no need to use this for just the UI
The size also bloats massively as we include all the ripper dependencies from pip

The current docker also uses automaticrippingmachine/arm-dependencies:1.1.8 during building for the front end, this again adds massive bloat to the final image, especially if we are running the ripper in its own container.

This removes the bloat and leaves the UI completely independent

added git config to user files setup

uncommented ripper in docker compose

Updated ripper Dockerfile (Dockerfile) to shrink image and remove need for submodule

added install scrips for handbrake & makemkkv
armui.sh now runs with user already inside container

moved some build stages into the build stage to speed up dev building

added mysql-connector-python to ripper requirements (`requirements.txt`)
@1337-server 1337-server marked this pull request as draft October 22, 2025 17:10
added copy for /arm/app/comments.json

UI updated with cleaner display, still in progress
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
5 Security Hotspots
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@1337-server 1337-server moved this to In Progress in v3.0 Oct 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.