Skip to content

Modernize Dockerfile: Update to debian:latest and remove custom base image dependency #99

@jgallowa07

Description

@jgallowa07

Summary

The current Dockerfile relies on an outdated custom base image (quay.io/matsengrp/linearham:2022-11-29-base-image) built on Debian Stretch, which is no longer maintained. This PR updates the Dockerfile to use a modern Debian base image and eliminates the need for maintaining a separate base image.

Changes needed

  1. Update base image: Change from custom base image to debian:latest
  2. Update Python: Migrate from Python 2 to Python 3 (python3-dev, python3-pip, python3-setuptools)
  3. Integrate RevBayes: Add RevBayes installation directly in the main Dockerfile
  4. Use pip-installed partis: Install partis-bcr from PyPI instead of building from source
  5. Update SConstruct: Change --build-partis-linearham to --build (builds only linearham)
  6. Update requirements.txt: Remove version pins and add partis-bcr and scons packages
  7. Platform specification: Explicitly set platform to linux/amd64 due to partis-bcr's x86-specific code

Benefits

  • Eliminates maintenance burden of custom base image
  • Uses modern, supported Debian version
  • Simplifies build process
  • Better compatibility with modern Python ecosystem
  • Faster builds (RevBayes binary download is quick)

Testing

  • Successfully builds on Apple Silicon (using platform emulation)
  • All changes align with colleague's local testing and git diff

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions