This repository contains the base Docker image to create a consistent lab environment for the NYU DevOps and Agile Methodologies CSCI-GA.2820-001 graduate class. It is intended to be used as a base image with Visual Studio Code along with the Dev Container extension.
For more information see the article Developing inside a Container
This image contains the following packages on top of python:3.11-slim: sudo, vim, make, git, zip, tree, curl, wget, jq, procps, net-tools, iputils-ping.
It also defines the user vscode which is needed for VSCode features to work properly. The vscode user has password-less sudo privileges. This teaches developers to not develop as root even when in a containerized environment.
You can use this image with this starter devcontainer.json file:
{
"name": "NYU DevOps",
"image": "rofrano/nyu-devops-base:latest"
}This will create a Python 3.11 environment with all of the afore mentioned tools installed. The name will be NYU DevOps but you can change it to anything you'd like.
Feel free to add VSCode extensions that you want every developer to have:
{
"name": "NYU DevOps",
"image": "rofrano/nyu-devops-base:latest",
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.pylint"
]
}
}
}Use make to build an push the images to Docker Hub:
make init
make buildmake init will create a qemu builder for buildx and set it as the default builder
make build will build a multi-platform image for linux/arm46 & linux/amd64 and push it to Docker hub
Note: If you want to push this to your own Docker registry, you will need to define an environment variable called REGISTRY and set it to your Docker account registry name
For example:
export REGISTRY='my-account'
make buildThat will tag the Docker image as my-account/nyu-devops-base:latest and push it to Docker hub.
If you use a different registry, just include that in the REGISTRY environment variable like this:
export REGISTRY='quay.io/my-account'
make buildThat will tag the image as quay.io/my-account/nyu-devops-base:latest and push it to the Red Hat Quay.io registry.
Copyright (c) 2020, 2025 John Rofrano. All rights reserved.
Licensed under the Apache 2.0 License. See LICENSE
This repo is part of the NYU graduate division class: CSCI-GA.2820-001 DevOps and Agile Methodologies conceived, created and taught by John Rofrano