Skip to content

Internal: Remove base environment from Docker Conda images #2249

@georgemccabe

Description

@georgemccabe

Scripts in internal/scripts/docker_env are used to create Docker images that contain Conda environments used for use case tests that require additional python packages. Many of the conda environments are created by copying (cloning) an existing environment (like metplus_base or py_embed_base) and adding packages. The original base environment still exists in the Docker image. Some of these conda environments, like metplotpy, take up a lot of space and cause the Docker image to be very large even though the base image is not used.

Describe the Task

Add logic to the Dockerfiles in internal/scripts/docker_env to remove the conda environment used to create a new environment after the new one is created. Consider creating a GitHub Action workflow that can be triggered through the web UI to build and push these images so they can be run by other developers.

Time Estimate

~1 day

Sub-Issues

Consider breaking the task down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

None

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED CYCLE ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

Task Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Add any new Python packages to the METplus Components Python Requirements table.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions