Skip to content

This repository is to define the image to be used for the development environments (vscode .devcontainers) as well as the base container for the lambda functions. It includes all needed packages for development.

License

Notifications You must be signed in to change notification settings

HERMES-SOC/sdc_aws_base_docker_image

Repository files navigation

Docker Lambda Base Image Repository

CodeBuild Status aws build status
Docs Status Documentation Status

Description:

This repository is to define the image to be used for the development environments (vscode .devcontainers) as well as the base container for the lambda functions. It includes all needed packages for development.

This container is built and pushed to the public repo ECR automatically by AWS Codebuild.

Base Image: Ubuntu 22.04 (public.ecr.aws/lts/ubuntu:22.04_stable)

ECR Repo: Docker Lambda Base Image (public.ecr.aws/w5r9l1c8/swsoc-docker-lambda-base:latest)

Included OS Packages

  • git
  • wget
  • unzip
  • python3.8
  • python3-pip
  • pylint

Included Python Packages

  • numpy
  • astropy
  • sunpy
  • flake8 (For code style)
  • black (For code style)
  • pytest (For testing)
  • pytest-astropy(For testing)
  • pytest-cov (For testing)
  • pre-commit
  • sphinx (For documentation)
  • sphinx-automodapi (For documentation)
  • sphinx-changelog (For documentation)
  • ipython (For easier debugging)
  • hermes core (For instrument packages)
  • boto3 (For AWS SDK)
  • awslambdaric (For use with interfacing with AWS Lambda)
  • matplotlib
  • scipy
  • spacepy (For CDF file support)
  • ipykernel (For Jupyter notebook)
  • ccsdspy (For parsing CCSDS binary files)

Tests:

Checks whether the container contains the specified OS and Python requirements using the Container Structure Test (CST testing suite).

How to Contribute:

To make a change to this container image, please fork this repo, make the requested change and create a Pull Request with the change. The PR will trigger a first set of tests to ensure your changes don't break anything in the environment. It will then require two formal reviews/approvals by the project admins. Once it's been approved it can then be Squashed and Merged into the main branch of the repo. The CI/CD pipeline from this point will re-run tests and push the image to ECR. After the image has been successfully pushed you can then rebuilt your container in your development environment or you can manually pull the image start to use it.

Development Environment Troubleshooting:

If you experience any issues in your development environment (.devcontainer environment on VSCode) when pulling this image from ECR, ensure you have the latest build by rebuilding your container to pull from latest.

Dockerfile Details

This Docker image is built from the official Canonical Ubuntu 22.04 image. It updates the system and installs necessary packages such as git, unzip, python3.8, python3-pip, and pylint.

This Dockerfile also includes a process to download pre-built CDF binaries for data format support and copies a Python requirements.txt file into the image to be used for installing Python dependencies.

Furthermore, it contains a test script to check if the container includes the specified OS and Python requirements using the Container Structure Test.

The Dockerfile finally creates a user 'vscode' with sudo support to run the container.

About

This repository is to define the image to be used for the development environments (vscode .devcontainers) as well as the base container for the lambda functions. It includes all needed packages for development.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •