Skip to content

Docker container providing an emulated S/370 mainframe (Hercules) running VM/370 based on distributions of VM/370 Release 6, circa 1979.

License

Notifications You must be signed in to change notification settings

RossPatterson/vm370_docker_builder

 
 

Repository files navigation

VM-370

This repository is a builder for a Docker container that provides an emulated S/370 mainframe (Hercules) running VM/370 based on distributions of VM/370 Release 6, circa 1979.

Releases

The Docker images are at https://hub.docker.com/repository/docker/rosspatterson/vm370.

See this repository's release tab for the Dockerfile build source and the VM/370 DASD files.

History

  • latest -> 1.6.0
  • Version 1.6.0 is built from the VM/370 Community Edition v1.1.2 distribution.
  • Version 1.5.3 is built from the VM/370 Community Edition v1.1.0 distribution.
  • Version 1.3.4 corresponds to Six Pack 1.3 Beta 3.

See changelog.txt for full version history

Links

To use this repo

  1. Prepare Docker:
    1. If you don't already have a Docker account, create one at https://www.docker.com.
    2. Create a "vm370" Docker repository.
    3. Create a Personal Access Token at https://app.docker.com/settings/personal-access-tokens with "Read & Write" permission. NOTE: Docker only shows you the token when you generate it. You can never see its value again, so copy it immediately and save it.
  2. Fork this repository in GitHub.
  3. Create the following action secrets in your fork:
    1. DOCKER_USERNAME - your Docker userid.
    2. DOCKER_PASSWORD - your Docker personal access token.
  4. Go to the Actions tab on your fork and enable workflows.
  5. Make a change, commit it, and push it to your fork. The dockertest.yml/DockerTest GitHub workflow job will test the container build.
  6. Tag the revision as vn.n.n (e.g., "v1.5.4") and push the tag to GitHub. The dockerpush.yml/DockerPublish GitHub workflow job will push the container image to Docker.

To update the Docker image

  1. Clone this repository to your disk.
  2. Download the VM/370 distribution you want to build.
  3. Delete the old DASD base and shadow files from disks/ and disks/shadows/.
  4. Add the new DASD files to disks/.
  5. Review the following files and make any necessary changes:
    1. build.sh - shell script to build the Docker container.
    2. cleandisks.conf - Hercules configuration for removing shadow files.
    3. hercules.conf - main Hercules configuration.
    4. github/workflows/*.yml - GitHub workflow files.
    5. Dockerfile - the main Docker control file.
  6. Commit the changes and push to GitHub.
  7. Wait for the dockertest.yml/DockerTest GitHub workflow job to run and verify its success.
  8. Tag the revision as vn.n.n (e.g., "v1.5.4") and push the tag to GitHub. NOTE: The leading "v" is necessary - it triggers the push to Docker.
  9. Wait for the dockerpush.yml/DockerPublish GitHub workflow job to run.
  10. Verify that your Docker userid has the new version of the container image.
  11. When you're happy with the container image, consider updating the latest tag to point to it:
    1. Start your Docker engine (e.g., Docker desktop).
    2. docker pull userid/vm370:x.y.z
    3. docker tag userid/vm370:x.y.z userid/vm370:latest
    4. docker push userid/vm370:latest
    5. Stop your Docker engine.
  12. When you're ready to make the CMS370-BREXX and CMS370-GCCLIB build systems use the container image, update the builder tag to point to it:
    1. Start your Docker engine (e.g., Docker desktop).
    2. docker pull userid/vm370:x.y.z
    3. docker tag userid/vm370:x.y.z userid/vm370:builder
    4. docker push userid/vm370:builder
    5. Stop your Docker engine.
    6. Go to your CMS370-BREXX and CMS370-GCCLIB repositories, and review the following files and make any necessary changes:
      1. cmsbuild.sh - shell script to build the code.
      2. github/workflows/build.yml - GitHub workflow files.

About

Docker container providing an emulated S/370 mainframe (Hercules) running VM/370 based on distributions of VM/370 Release 6, circa 1979.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 76.5%
  • Dockerfile 23.5%