official-images
official-images copied to clipboard
Add abcl image
Add an official image for Armed Bear Common Lisp (ABCL).
Checklist for Review
NOTE: This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us :heart:)
- [x] associated with or contacted upstream?
- [x] available under an OSI-approved license?
- [x] does it fit into one of the common categories? ("service", "language stack", "base distribution")
- [x] is it reasonably popular, or does it solve a particular use case well?
- [x] does a documentation PR exist?
- https://github.com/docker-library/docs/pull/1864
- [ ] official-images maintainer dockerization review for best practices and cache gotchas/improvements (ala the official review guidelines)?
- [ ] 2+ official-images maintainer dockerization review?
- [x] existing official images have been considered as a base? (ie, if
foobar
needs Node.js, hasFROM node:...
instead of grabbingnode
via other means been considered?) - [x] ~if
FROM scratch
, tarballs only exist in a single commit within the associated history?~ - [ ] passes current tests? any simple new tests that might be appropriate to add? (https://github.com/docker-library/official-images/tree/master/test)
Diff for 8ebb50088feaa25471b6c1abd988aa27bcdadc6e:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index bdfae4a..0a305b2 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,154 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Eric Timmons <[email protected]> (@daewok)
+GitRepo: https://github.com/cl-docker-images/abcl.git
+
+Tags: 1.7.1-jdk8-buster, 1.7-jdk8-buster
+SharedTags: 1.7.1-jdk8, 1.7-jdk8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-8
+
+Tags: 1.7.1-jdk8-slim-buster, 1.7-jdk8-slim-buster
+SharedTags: 1.7.1-jdk8-slim, 1.7-jdk8-slim
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-8/slim
+
+Tags: 1.7.1-jdk8-windowsservercore-1809, 1.7-jdk8-windowsservercore-1809
+SharedTags: 1.7.1-jdk8, 1.7-jdk8, 1.7.1-jdk8-windowsservercore, 1.7-jdk8-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-1809/jdk-8
+Constraints: windowsservercore-1809
+
+Tags: 1.7.1-jdk8-windowsservercore-ltsc2016, 1.7-jdk8-windowsservercore-ltsc2016
+SharedTags: 1.7.1-jdk8, 1.7-jdk8, 1.7.1-jdk8-windowsservercore, 1.7-jdk8-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-ltsc2016/jdk-8
+Constraints: windowsservercore-ltsc2016
+
+Tags: 1.7.1-jdk11-buster, 1.7-jdk11-buster
+SharedTags: 1.7.1-jdk11, 1.7-jdk11
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-11
+
+Tags: 1.7.1-jdk11-slim-buster, 1.7-jdk11-slim-buster
+SharedTags: 1.7.1-jdk11-slim, 1.7-jdk11-slim
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-11/slim
+
+Tags: 1.7.1-jdk11-windowsservercore-1809, 1.7-jdk11-windowsservercore-1809
+SharedTags: 1.7.1-jdk11, 1.7-jdk11, 1.7.1-jdk11-windowsservercore, 1.7-jdk11-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-1809/jdk-11
+Constraints: windowsservercore-1809
+
+Tags: 1.7.1-jdk11-windowsservercore-ltsc2016, 1.7-jdk11-windowsservercore-ltsc2016
+SharedTags: 1.7.1-jdk11, 1.7-jdk11, 1.7.1-jdk11-windowsservercore, 1.7-jdk11-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-ltsc2016/jdk-11
+Constraints: windowsservercore-ltsc2016
+
+Tags: 1.7.1-jdk15-buster, 1.7-jdk15-buster, 1.7.1-jdk-buster, 1.7-jdk-buster, 1.7.1-buster, 1.7-buster
+SharedTags: 1.7.1-jdk15, 1.7-jdk15, 1.7.1-jdk, 1.7-jdk, 1.7.1, 1.7
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-15
+
+Tags: 1.7.1-jdk15-slim-buster, 1.7-jdk15-slim-buster, 1.7.1-jdk-slim-buster, 1.7-jdk-slim-buster, 1.7.1-slim-buster, 1.7-slim-buster
+SharedTags: 1.7.1-jdk15-slim, 1.7-jdk15-slim, 1.7.1-jdk-slim, 1.7-jdk-slim, 1.7.1-slim, 1.7-slim
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/buster/jdk-15/slim
+
+Tags: 1.7.1-jdk15-windowsservercore-1809, 1.7-jdk15-windowsservercore-1809, 1.7.1-jdk-windowsservercore-1809, 1.7-jdk-windowsservercore-1809, 1.7.1-windowsservercore-1809, 1.7-windowsservercore-1809
+SharedTags: 1.7.1-jdk15, 1.7-jdk15, 1.7.1-jdk, 1.7-jdk, 1.7.1, 1.7, 1.7.1-jdk15-windowsservercore, 1.7-jdk15-windowsservercore, 1.7.1-jdk-windowsservercore, 1.7-jdk-windowsservercore, 1.7.1-windowsservercore, 1.7-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-1809/jdk-15
+Constraints: windowsservercore-1809
+
+Tags: 1.7.1-jdk15-windowsservercore-ltsc2016, 1.7-jdk15-windowsservercore-ltsc2016, 1.7.1-jdk-windowsservercore-ltsc2016, 1.7-jdk-windowsservercore-ltsc2016, 1.7.1-windowsservercore-ltsc2016, 1.7-windowsservercore-ltsc2016
+SharedTags: 1.7.1-jdk15, 1.7-jdk15, 1.7.1-jdk, 1.7-jdk, 1.7.1, 1.7, 1.7.1-jdk15-windowsservercore, 1.7-jdk15-windowsservercore, 1.7.1-jdk-windowsservercore, 1.7-jdk-windowsservercore, 1.7.1-windowsservercore, 1.7-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.7.1/windowsservercore-ltsc2016/jdk-15
+Constraints: windowsservercore-ltsc2016
+
+Tags: 1.8.0-jdk8-buster, 1-jdk8-buster, 1.8-jdk8-buster, jdk8-buster
+SharedTags: 1.8.0-jdk8, 1-jdk8, 1.8-jdk8, jdk8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-8
+
+Tags: 1.8.0-jdk8-slim-buster, 1-jdk8-slim-buster, 1.8-jdk8-slim-buster, jdk8-slim-buster
+SharedTags: 1.8.0-jdk8-slim, 1-jdk8-slim, 1.8-jdk8-slim, jdk8-slim
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-8/slim
+
+Tags: 1.8.0-jdk8-windowsservercore-1809, 1-jdk8-windowsservercore-1809, 1.8-jdk8-windowsservercore-1809, jdk8-windowsservercore-1809
+SharedTags: 1.8.0-jdk8, 1-jdk8, 1.8-jdk8, jdk8, 1.8.0-jdk8-windowsservercore, 1-jdk8-windowsservercore, 1.8-jdk8-windowsservercore, jdk8-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-1809/jdk-8
+Constraints: windowsservercore-1809
+
+Tags: 1.8.0-jdk8-windowsservercore-ltsc2016, 1-jdk8-windowsservercore-ltsc2016, 1.8-jdk8-windowsservercore-ltsc2016, jdk8-windowsservercore-ltsc2016
+SharedTags: 1.8.0-jdk8, 1-jdk8, 1.8-jdk8, jdk8, 1.8.0-jdk8-windowsservercore, 1-jdk8-windowsservercore, 1.8-jdk8-windowsservercore, jdk8-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-ltsc2016/jdk-8
+Constraints: windowsservercore-ltsc2016
+
+Tags: 1.8.0-jdk11-buster, 1-jdk11-buster, 1.8-jdk11-buster, jdk11-buster
+SharedTags: 1.8.0-jdk11, 1-jdk11, 1.8-jdk11, jdk11
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-11
+
+Tags: 1.8.0-jdk11-slim-buster, 1-jdk11-slim-buster, 1.8-jdk11-slim-buster, jdk11-slim-buster
+SharedTags: 1.8.0-jdk11-slim, 1-jdk11-slim, 1.8-jdk11-slim, jdk11-slim
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-11/slim
+
+Tags: 1.8.0-jdk11-windowsservercore-1809, 1-jdk11-windowsservercore-1809, 1.8-jdk11-windowsservercore-1809, jdk11-windowsservercore-1809
+SharedTags: 1.8.0-jdk11, 1-jdk11, 1.8-jdk11, jdk11, 1.8.0-jdk11-windowsservercore, 1-jdk11-windowsservercore, 1.8-jdk11-windowsservercore, jdk11-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-1809/jdk-11
+Constraints: windowsservercore-1809
+
+Tags: 1.8.0-jdk11-windowsservercore-ltsc2016, 1-jdk11-windowsservercore-ltsc2016, 1.8-jdk11-windowsservercore-ltsc2016, jdk11-windowsservercore-ltsc2016
+SharedTags: 1.8.0-jdk11, 1-jdk11, 1.8-jdk11, jdk11, 1.8.0-jdk11-windowsservercore, 1-jdk11-windowsservercore, 1.8-jdk11-windowsservercore, jdk11-windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-ltsc2016/jdk-11
+Constraints: windowsservercore-ltsc2016
+
+Tags: 1.8.0-jdk15-buster, 1-jdk15-buster, 1.8-jdk15-buster, jdk15-buster, 1.8.0-jdk-buster, 1-jdk-buster, 1.8-jdk-buster, jdk-buster, 1.8.0-buster, 1-buster, 1.8-buster, buster
+SharedTags: 1.8.0-jdk15, 1-jdk15, 1.8-jdk15, jdk15, 1.8.0-jdk, 1-jdk, 1.8-jdk, jdk, 1.8.0, 1, 1.8, latest
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-15
+
+Tags: 1.8.0-jdk15-slim-buster, 1-jdk15-slim-buster, 1.8-jdk15-slim-buster, jdk15-slim-buster, 1.8.0-jdk-slim-buster, 1-jdk-slim-buster, 1.8-jdk-slim-buster, jdk-slim-buster, 1.8.0-slim-buster, 1-slim-buster, 1.8-slim-buster, slim-buster
+SharedTags: 1.8.0-jdk15-slim, 1-jdk15-slim, 1.8-jdk15-slim, jdk15-slim, 1.8.0-jdk-slim, 1-jdk-slim, 1.8-jdk-slim, jdk-slim, 1.8.0-slim, 1-slim, 1.8-slim, slim
+Architectures: amd64, arm64v8
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/buster/jdk-15/slim
+
+Tags: 1.8.0-jdk15-windowsservercore-1809, 1-jdk15-windowsservercore-1809, 1.8-jdk15-windowsservercore-1809, jdk15-windowsservercore-1809, 1.8.0-jdk-windowsservercore-1809, 1-jdk-windowsservercore-1809, 1.8-jdk-windowsservercore-1809, jdk-windowsservercore-1809, 1.8.0-windowsservercore-1809, 1-windowsservercore-1809, 1.8-windowsservercore-1809, windowsservercore-1809
+SharedTags: 1.8.0-jdk15, 1-jdk15, 1.8-jdk15, jdk15, 1.8.0-jdk, 1-jdk, 1.8-jdk, jdk, 1.8.0, 1, 1.8, latest, 1.8.0-jdk15-windowsservercore, 1-jdk15-windowsservercore, 1.8-jdk15-windowsservercore, jdk15-windowsservercore, 1.8.0-jdk-windowsservercore, 1-jdk-windowsservercore, 1.8-jdk-windowsservercore, jdk-windowsservercore, 1.8.0-windowsservercore, 1-windowsservercore, 1.8-windowsservercore, windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-1809/jdk-15
+Constraints: windowsservercore-1809
+
+Tags: 1.8.0-jdk15-windowsservercore-ltsc2016, 1-jdk15-windowsservercore-ltsc2016, 1.8-jdk15-windowsservercore-ltsc2016, jdk15-windowsservercore-ltsc2016, 1.8.0-jdk-windowsservercore-ltsc2016, 1-jdk-windowsservercore-ltsc2016, 1.8-jdk-windowsservercore-ltsc2016, jdk-windowsservercore-ltsc2016, 1.8.0-windowsservercore-ltsc2016, 1-windowsservercore-ltsc2016, 1.8-windowsservercore-ltsc2016, windowsservercore-ltsc2016
+SharedTags: 1.8.0-jdk15, 1-jdk15, 1.8-jdk15, jdk15, 1.8.0-jdk, 1-jdk, 1.8-jdk, jdk, 1.8.0, 1, 1.8, latest, 1.8.0-jdk15-windowsservercore, 1-jdk15-windowsservercore, 1.8-jdk15-windowsservercore, jdk15-windowsservercore, 1.8.0-jdk-windowsservercore, 1-jdk-windowsservercore, 1.8-jdk-windowsservercore, jdk-windowsservercore, 1.8.0-windowsservercore, 1-windowsservercore, 1.8-windowsservercore, windowsservercore
+Architectures: windows-amd64
+GitCommit: f3e8a2a6da84fa0a372e46bb7e8d5a6b696bec24
+Directory: 1.8.0/windowsservercore-ltsc2016/jdk-15
+Constraints: windowsservercore-ltsc2016
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..6dbe610 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,210 @@
+abcl:1
+abcl:1-buster
+abcl:1-jdk
+abcl:1-jdk8
+abcl:1-jdk8-buster
+abcl:1-jdk8-slim
+abcl:1-jdk8-slim-buster
+abcl:1-jdk8-windowsservercore
+abcl:1-jdk8-windowsservercore-1809
+abcl:1-jdk8-windowsservercore-ltsc2016
+abcl:1-jdk11
+abcl:1-jdk11-buster
+abcl:1-jdk11-slim
+abcl:1-jdk11-slim-buster
+abcl:1-jdk11-windowsservercore
+abcl:1-jdk11-windowsservercore-1809
+abcl:1-jdk11-windowsservercore-ltsc2016
+abcl:1-jdk15
+abcl:1-jdk15-buster
+abcl:1-jdk15-slim
+abcl:1-jdk15-slim-buster
+abcl:1-jdk15-windowsservercore
+abcl:1-jdk15-windowsservercore-1809
+abcl:1-jdk15-windowsservercore-ltsc2016
+abcl:1-jdk-buster
+abcl:1-jdk-slim
+abcl:1-jdk-slim-buster
+abcl:1-jdk-windowsservercore
+abcl:1-jdk-windowsservercore-1809
+abcl:1-jdk-windowsservercore-ltsc2016
+abcl:1-slim
+abcl:1-slim-buster
+abcl:1-windowsservercore
+abcl:1-windowsservercore-1809
+abcl:1-windowsservercore-ltsc2016
+abcl:1.7
+abcl:1.7-buster
+abcl:1.7-jdk
+abcl:1.7-jdk8
+abcl:1.7-jdk8-buster
+abcl:1.7-jdk8-slim
+abcl:1.7-jdk8-slim-buster
+abcl:1.7-jdk8-windowsservercore
+abcl:1.7-jdk8-windowsservercore-1809
+abcl:1.7-jdk8-windowsservercore-ltsc2016
+abcl:1.7-jdk11
+abcl:1.7-jdk11-buster
+abcl:1.7-jdk11-slim
+abcl:1.7-jdk11-slim-buster
+abcl:1.7-jdk11-windowsservercore
+abcl:1.7-jdk11-windowsservercore-1809
+abcl:1.7-jdk11-windowsservercore-ltsc2016
+abcl:1.7-jdk15
+abcl:1.7-jdk15-buster
+abcl:1.7-jdk15-slim
+abcl:1.7-jdk15-slim-buster
+abcl:1.7-jdk15-windowsservercore
+abcl:1.7-jdk15-windowsservercore-1809
+abcl:1.7-jdk15-windowsservercore-ltsc2016
+abcl:1.7-jdk-buster
+abcl:1.7-jdk-slim
+abcl:1.7-jdk-slim-buster
+abcl:1.7-jdk-windowsservercore
+abcl:1.7-jdk-windowsservercore-1809
+abcl:1.7-jdk-windowsservercore-ltsc2016
+abcl:1.7-slim
+abcl:1.7-slim-buster
+abcl:1.7-windowsservercore
+abcl:1.7-windowsservercore-1809
+abcl:1.7-windowsservercore-ltsc2016
+abcl:1.7.1
+abcl:1.7.1-buster
+abcl:1.7.1-jdk
+abcl:1.7.1-jdk8
+abcl:1.7.1-jdk8-buster
+abcl:1.7.1-jdk8-slim
+abcl:1.7.1-jdk8-slim-buster
+abcl:1.7.1-jdk8-windowsservercore
+abcl:1.7.1-jdk8-windowsservercore-1809
+abcl:1.7.1-jdk8-windowsservercore-ltsc2016
+abcl:1.7.1-jdk11
+abcl:1.7.1-jdk11-buster
+abcl:1.7.1-jdk11-slim
+abcl:1.7.1-jdk11-slim-buster
+abcl:1.7.1-jdk11-windowsservercore
+abcl:1.7.1-jdk11-windowsservercore-1809
+abcl:1.7.1-jdk11-windowsservercore-ltsc2016
+abcl:1.7.1-jdk15
+abcl:1.7.1-jdk15-buster
+abcl:1.7.1-jdk15-slim
+abcl:1.7.1-jdk15-slim-buster
+abcl:1.7.1-jdk15-windowsservercore
+abcl:1.7.1-jdk15-windowsservercore-1809
+abcl:1.7.1-jdk15-windowsservercore-ltsc2016
+abcl:1.7.1-jdk-buster
+abcl:1.7.1-jdk-slim
+abcl:1.7.1-jdk-slim-buster
+abcl:1.7.1-jdk-windowsservercore
+abcl:1.7.1-jdk-windowsservercore-1809
+abcl:1.7.1-jdk-windowsservercore-ltsc2016
+abcl:1.7.1-slim
+abcl:1.7.1-slim-buster
+abcl:1.7.1-windowsservercore
+abcl:1.7.1-windowsservercore-1809
+abcl:1.7.1-windowsservercore-ltsc2016
+abcl:1.8
+abcl:1.8-buster
+abcl:1.8-jdk
+abcl:1.8-jdk8
+abcl:1.8-jdk8-buster
+abcl:1.8-jdk8-slim
+abcl:1.8-jdk8-slim-buster
+abcl:1.8-jdk8-windowsservercore
+abcl:1.8-jdk8-windowsservercore-1809
+abcl:1.8-jdk8-windowsservercore-ltsc2016
+abcl:1.8-jdk11
+abcl:1.8-jdk11-buster
+abcl:1.8-jdk11-slim
+abcl:1.8-jdk11-slim-buster
+abcl:1.8-jdk11-windowsservercore
+abcl:1.8-jdk11-windowsservercore-1809
+abcl:1.8-jdk11-windowsservercore-ltsc2016
+abcl:1.8-jdk15
+abcl:1.8-jdk15-buster
+abcl:1.8-jdk15-slim
+abcl:1.8-jdk15-slim-buster
+abcl:1.8-jdk15-windowsservercore
+abcl:1.8-jdk15-windowsservercore-1809
+abcl:1.8-jdk15-windowsservercore-ltsc2016
+abcl:1.8-jdk-buster
+abcl:1.8-jdk-slim
+abcl:1.8-jdk-slim-buster
+abcl:1.8-jdk-windowsservercore
+abcl:1.8-jdk-windowsservercore-1809
+abcl:1.8-jdk-windowsservercore-ltsc2016
+abcl:1.8-slim
+abcl:1.8-slim-buster
+abcl:1.8-windowsservercore
+abcl:1.8-windowsservercore-1809
+abcl:1.8-windowsservercore-ltsc2016
+abcl:1.8.0
+abcl:1.8.0-buster
+abcl:1.8.0-jdk
+abcl:1.8.0-jdk8
+abcl:1.8.0-jdk8-buster
+abcl:1.8.0-jdk8-slim
+abcl:1.8.0-jdk8-slim-buster
+abcl:1.8.0-jdk8-windowsservercore
+abcl:1.8.0-jdk8-windowsservercore-1809
+abcl:1.8.0-jdk8-windowsservercore-ltsc2016
+abcl:1.8.0-jdk11
+abcl:1.8.0-jdk11-buster
+abcl:1.8.0-jdk11-slim
+abcl:1.8.0-jdk11-slim-buster
+abcl:1.8.0-jdk11-windowsservercore
+abcl:1.8.0-jdk11-windowsservercore-1809
+abcl:1.8.0-jdk11-windowsservercore-ltsc2016
+abcl:1.8.0-jdk15
+abcl:1.8.0-jdk15-buster
+abcl:1.8.0-jdk15-slim
+abcl:1.8.0-jdk15-slim-buster
+abcl:1.8.0-jdk15-windowsservercore
+abcl:1.8.0-jdk15-windowsservercore-1809
+abcl:1.8.0-jdk15-windowsservercore-ltsc2016
+abcl:1.8.0-jdk-buster
+abcl:1.8.0-jdk-slim
+abcl:1.8.0-jdk-slim-buster
+abcl:1.8.0-jdk-windowsservercore
+abcl:1.8.0-jdk-windowsservercore-1809
+abcl:1.8.0-jdk-windowsservercore-ltsc2016
+abcl:1.8.0-slim
+abcl:1.8.0-slim-buster
+abcl:1.8.0-windowsservercore
+abcl:1.8.0-windowsservercore-1809
+abcl:1.8.0-windowsservercore-ltsc2016
+abcl:buster
+abcl:jdk
+abcl:jdk8
+abcl:jdk8-buster
+abcl:jdk8-slim
+abcl:jdk8-slim-buster
+abcl:jdk8-windowsservercore
+abcl:jdk8-windowsservercore-1809
+abcl:jdk8-windowsservercore-ltsc2016
+abcl:jdk11
+abcl:jdk11-buster
+abcl:jdk11-slim
+abcl:jdk11-slim-buster
+abcl:jdk11-windowsservercore
+abcl:jdk11-windowsservercore-1809
+abcl:jdk11-windowsservercore-ltsc2016
+abcl:jdk15
+abcl:jdk15-buster
+abcl:jdk15-slim
+abcl:jdk15-slim-buster
+abcl:jdk15-windowsservercore
+abcl:jdk15-windowsservercore-1809
+abcl:jdk15-windowsservercore-ltsc2016
+abcl:jdk-buster
+abcl:jdk-slim
+abcl:jdk-slim-buster
+abcl:jdk-windowsservercore
+abcl:jdk-windowsservercore-1809
+abcl:jdk-windowsservercore-ltsc2016
+abcl:latest
+abcl:slim
+abcl:slim-buster
+abcl:windowsservercore
+abcl:windowsservercore-1809
+abcl:windowsservercore-ltsc2016
diff --git a/abcl_1.7-buster/Dockerfile b/abcl_1.7-buster/Dockerfile
new file mode 100644
index 0000000..3773eb6
--- /dev/null
+++ b/abcl_1.7-buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-buster/abcl-wrapper b/abcl_1.7-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_1.7-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-buster/docker-entrypoint.sh b/abcl_1.7-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-jdk11-buster/Dockerfile b/abcl_1.7-jdk11-buster/Dockerfile
new file mode 100644
index 0000000..5868efa
--- /dev/null
+++ b/abcl_1.7-jdk11-buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-jdk11-buster/abcl-wrapper b/abcl_1.7-jdk11-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_1.7-jdk11-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-jdk11-buster/docker-entrypoint.sh b/abcl_1.7-jdk11-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-jdk11-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-jdk11-slim-buster/Dockerfile b/abcl_1.7-jdk11-slim-buster/Dockerfile
new file mode 100644
index 0000000..88f98e4
--- /dev/null
+++ b/abcl_1.7-jdk11-slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-slim-buster
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-jdk11-slim-buster/abcl-wrapper b/abcl_1.7-jdk11-slim-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_1.7-jdk11-slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-jdk11-slim-buster/docker-entrypoint.sh b/abcl_1.7-jdk11-slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-jdk11-slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-jdk11-windowsservercore-1809/Dockerfile b/abcl_1.7-jdk11-windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..e8ee639
--- /dev/null
+++ b/abcl_1.7-jdk11-windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-jdk11-windowsservercore-1809/abcl-wrapper.bat b/abcl_1.7-jdk11-windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_1.7-jdk11-windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_1.7-jdk11-windowsservercore-ltsc2016/Dockerfile b/abcl_1.7-jdk11-windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..06aa3b4
--- /dev/null
+++ b/abcl_1.7-jdk11-windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_1.7-jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_1.7-jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_1.7-jdk8-buster/Dockerfile b/abcl_1.7-jdk8-buster/Dockerfile
new file mode 100644
index 0000000..ac72f60
--- /dev/null
+++ b/abcl_1.7-jdk8-buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-jdk8-buster/abcl-wrapper b/abcl_1.7-jdk8-buster/abcl-wrapper
new file mode 100755
index 0000000..033e29a
--- /dev/null
+++ b/abcl_1.7-jdk8-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-jdk8-buster/docker-entrypoint.sh b/abcl_1.7-jdk8-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-jdk8-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-jdk8-slim-buster/Dockerfile b/abcl_1.7-jdk8-slim-buster/Dockerfile
new file mode 100644
index 0000000..03c7bb1
--- /dev/null
+++ b/abcl_1.7-jdk8-slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-slim-buster
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-jdk8-slim-buster/abcl-wrapper b/abcl_1.7-jdk8-slim-buster/abcl-wrapper
new file mode 100755
index 0000000..033e29a
--- /dev/null
+++ b/abcl_1.7-jdk8-slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-jdk8-slim-buster/docker-entrypoint.sh b/abcl_1.7-jdk8-slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-jdk8-slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-jdk8-windowsservercore-1809/Dockerfile b/abcl_1.7-jdk8-windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..c8481d9
--- /dev/null
+++ b/abcl_1.7-jdk8-windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-jdk8-windowsservercore-1809/abcl-wrapper.bat b/abcl_1.7-jdk8-windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..67ccdb3
--- /dev/null
+++ b/abcl_1.7-jdk8-windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_1.7-jdk8-windowsservercore-ltsc2016/Dockerfile b/abcl_1.7-jdk8-windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..899d0d9
--- /dev/null
+++ b/abcl_1.7-jdk8-windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_1.7-jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..67ccdb3
--- /dev/null
+++ b/abcl_1.7-jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_1.7-slim-buster/Dockerfile b/abcl_1.7-slim-buster/Dockerfile
new file mode 100644
index 0000000..3b4b4d5
--- /dev/null
+++ b/abcl_1.7-slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-slim-buster
+
+ENV ABCL_VERSION 1.7.1
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_1.7-slim-buster/abcl-wrapper b/abcl_1.7-slim-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_1.7-slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_1.7-slim-buster/docker-entrypoint.sh b/abcl_1.7-slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_1.7-slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_1.7-windowsservercore-1809/Dockerfile b/abcl_1.7-windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..83461a3
--- /dev/null
+++ b/abcl_1.7-windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-windowsservercore-1809/abcl-wrapper.bat b/abcl_1.7-windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_1.7-windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_1.7-windowsservercore-ltsc2016/Dockerfile b/abcl_1.7-windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..c1c9f29
--- /dev/null
+++ b/abcl_1.7-windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.7.1
+ENV ABCL_SHA256 f13b4b455af5fd771ecd92aacc41448bc8c2ac4b58e0087195134877b573361c
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_1.7-windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_1.7-windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_1.7-windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_buster/Dockerfile b/abcl_buster/Dockerfile
new file mode 100644
index 0000000..ffc61f9
--- /dev/null
+++ b/abcl_buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_buster/abcl-wrapper b/abcl_buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_buster/docker-entrypoint.sh b/abcl_buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_jdk11-buster/Dockerfile b/abcl_jdk11-buster/Dockerfile
new file mode 100644
index 0000000..2cd003c
--- /dev/null
+++ b/abcl_jdk11-buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_jdk11-buster/abcl-wrapper b/abcl_jdk11-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_jdk11-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_jdk11-buster/docker-entrypoint.sh b/abcl_jdk11-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_jdk11-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_jdk11-slim-buster/Dockerfile b/abcl_jdk11-slim-buster/Dockerfile
new file mode 100644
index 0000000..eb42cf0
--- /dev/null
+++ b/abcl_jdk11-slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-slim-buster
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_jdk11-slim-buster/abcl-wrapper b/abcl_jdk11-slim-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_jdk11-slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_jdk11-slim-buster/docker-entrypoint.sh b/abcl_jdk11-slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_jdk11-slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_jdk11-windowsservercore-1809/Dockerfile b/abcl_jdk11-windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..4f8f107
--- /dev/null
+++ b/abcl_jdk11-windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_jdk11-windowsservercore-1809/abcl-wrapper.bat b/abcl_jdk11-windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_jdk11-windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_jdk11-windowsservercore-ltsc2016/Dockerfile b/abcl_jdk11-windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..feb5247
--- /dev/null
+++ b/abcl_jdk11-windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:11-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_jdk11-windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_jdk8-buster/Dockerfile b/abcl_jdk8-buster/Dockerfile
new file mode 100644
index 0000000..7acbcf4
--- /dev/null
+++ b/abcl_jdk8-buster/Dockerfile
@@ -0,0 +1,130 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-buster
+
+# Install the packages that buildpack-deps adds on top of
+# buildpack-deps:scm. This is a bit odd for a JVM based image, but the CFFI
+# project is commonly used and requires a compiler, headers, etc. Additionally,
+# this gives a more uniform experience between the different cl-docker-images
+# project's images.
+RUN set -ex; \
+ apt-get update; \
+ apt-get install -y --no-install-recommends \
+ autoconf \
+ automake \
+ bzip2 \
+ default-libmysqlclient-dev \
+ dpkg-dev \
+ file \
+ g++ \
+ gcc \
+ imagemagick \
+ libbz2-dev \
+ libc6-dev \
+ libcurl4-openssl-dev \
+ libdb-dev \
+ libevent-dev \
+ libffi-dev \
+ libgdbm-dev \
+ libglib2.0-dev \
+ libgmp-dev \
+ libjpeg-dev \
+ libkrb5-dev \
+ liblzma-dev \
+ libmagickcore-dev \
+ libmagickwand-dev \
+ libmaxminddb-dev \
+ libncurses5-dev \
+ libncursesw5-dev \
+ libpng-dev \
+ libpq-dev \
+ libreadline-dev \
+ libsqlite3-dev \
+ libssl-dev \
+ libtool \
+ libwebp-dev \
+ libxml2-dev \
+ libxslt-dev \
+ libyaml-dev \
+ make \
+ patch \
+ unzip \
+ xz-utils \
+ zlib1g-dev \
+ \
+ ; \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Maven as it is commonly used with ABCL, including with anything that
+# uses CFFI. We install it ourselves instead of basing the image off of maven
+# because the maven image only follows openjdk's default OS choice and does not
+# provide buster based images for jdk12+.
+
+ARG MAVEN_VERSION=3.6.3
+ARG MAVEN_SHA=c35a1803a6e70a126e80b2b3ae33eed961f83ed74d18fcd16909b2d44d7dada3203f1ffe726c17ef8dcca2dcaa9fca676987befeadc9b9f759967a8cb77181c0
+
+WORKDIR /usr/share/maven
+
+RUN curl -fsSL https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz > /tmp/apache-maven.tar.gz \
+ && echo "${MAVEN_SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
+ && tar -xzf /tmp/apache-maven.tar.gz --strip-components=1 \
+ && rm -f /tmp/apache-maven.tar.gz \
+ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
+
+ENV MAVEN_HOME /usr/share/maven
+
+# Now install ABCL
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz" > "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-src-${ABCL_VERSION}.tar.gz.asc" > "abcl-src-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gpg --batch --verify "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && gunzip "abcl-src-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-src-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && mkdir -p /usr/local/src \
+ && mv "abcl-src-${ABCL_VERSION}" /usr/local/src/abcl/ \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "abcl-src-${ABCL_VERSION}.tar.gz.asc" "abcl-src-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+# Add the Quicklisp installer.
+WORKDIR /usr/local/share/common-lisp/source/quicklisp/
+
+ENV QUICKLISP_SIGNING_KEY D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
+
+RUN set -x \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" > quicklisp.lisp \
+ && curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" > quicklisp.lisp.asc \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${QUICKLISP_SIGNING_KEY}" \
+ && gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
+ && rm quicklisp.lisp.asc \
+ && rm -rf "$GNUPGHOME"
+
+# Add the entrypoint
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_jdk8-buster/abcl-wrapper b/abcl_jdk8-buster/abcl-wrapper
new file mode 100755
index 0000000..033e29a
--- /dev/null
+++ b/abcl_jdk8-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_jdk8-buster/docker-entrypoint.sh b/abcl_jdk8-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_jdk8-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_jdk8-slim-buster/Dockerfile b/abcl_jdk8-slim-buster/Dockerfile
new file mode 100644
index 0000000..24717ca
--- /dev/null
+++ b/abcl_jdk8-slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-slim-buster
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_jdk8-slim-buster/abcl-wrapper b/abcl_jdk8-slim-buster/abcl-wrapper
new file mode 100755
index 0000000..033e29a
--- /dev/null
+++ b/abcl_jdk8-slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_jdk8-slim-buster/docker-entrypoint.sh b/abcl_jdk8-slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_jdk8-slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_jdk8-windowsservercore-1809/Dockerfile b/abcl_jdk8-windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..5b8af3a
--- /dev/null
+++ b/abcl_jdk8-windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_jdk8-windowsservercore-1809/abcl-wrapper.bat b/abcl_jdk8-windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..67ccdb3
--- /dev/null
+++ b/abcl_jdk8-windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_jdk8-windowsservercore-ltsc2016/Dockerfile b/abcl_jdk8-windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..f075c9a
--- /dev/null
+++ b/abcl_jdk8-windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:8-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..67ccdb3
--- /dev/null
+++ b/abcl_jdk8-windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:+UseG1GC -XX:+AggressiveOpts -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_slim-buster/Dockerfile b/abcl_slim-buster/Dockerfile
new file mode 100644
index 0000000..8d1ab2d
--- /dev/null
+++ b/abcl_slim-buster/Dockerfile
@@ -0,0 +1,42 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-slim-buster
+
+ENV ABCL_VERSION 1.8.0
+
+WORKDIR /usr/local/share/
+
+ENV ABCL_SIGNING_KEY 5491D207FF9ECDE0BEA277772A9641104DB1773D
+
+RUN set -x \
+ # Install fetch deps
+ && apt-get update \
+ && apt-get install --no-install-recommends -y curl gnupg dirmngr \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz" > "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && curl -fsSL "https://abcl.org/releases/${ABCL_VERSION}/abcl-bin-${ABCL_VERSION}.tar.gz.asc" > "abcl-bin-${ABCL_VERSION}.tar.gz.asc" \
+ && GNUPGHOME="$(mktemp -d)" \
+ && export GNUPGHOME \
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "${ABCL_SIGNING_KEY}" \
+ && gpg --batch --verify "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && gunzip "abcl-bin-${ABCL_VERSION}.tar.gz" \
+ && tar xf "abcl-bin-${ABCL_VERSION}.tar" \
+ && mv "abcl-bin-${ABCL_VERSION}" abcl \
+ && rm -rf "abcl-bin-${ABCL_VERSION}.tar.gz.asc" "abcl-bin-${ABCL_VERSION}.tar" "$GNUPGHOME" \
+ # Remove fetch deps
+ && apt-get remove -y curl gnupg dirmngr \
+ && apt-get autoremove -y \
+ && rm -rf /var/lib/apt/lists/* \
+ # Smoke test ABCL.
+ && java -jar /usr/local/share/abcl/abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+WORKDIR /
+
+COPY abcl-wrapper /usr/local/bin/abcl
+COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+
+ENTRYPOINT ["docker-entrypoint.sh"]
+
+CMD ["abcl"]
diff --git a/abcl_slim-buster/abcl-wrapper b/abcl_slim-buster/abcl-wrapper
new file mode 100755
index 0000000..da76f04
--- /dev/null
+++ b/abcl_slim-buster/abcl-wrapper
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec java -cp "/usr/local/share/abcl/abcl.jar:$CLASSPATH" \
+ -XshowSettings:vm -Dfile.encoding=UTF-8 \
+ -XX:CompileThreshold=10 \
+ org.armedbear.lisp.Main \
+ "$@"
diff --git a/abcl_slim-buster/docker-entrypoint.sh b/abcl_slim-buster/docker-entrypoint.sh
new file mode 100755
index 0000000..7f6b5a3
--- /dev/null
+++ b/abcl_slim-buster/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# If the first arg starts with a hyphen, prepend abcl to arguments.
+if [ "${1#-}" != "$1" ]; then
+ set -- abcl "$@"
+fi
+
+exec "$@"
diff --git a/abcl_windowsservercore-1809/Dockerfile b/abcl_windowsservercore-1809/Dockerfile
new file mode 100644
index 0000000..24d2f6f
--- /dev/null
+++ b/abcl_windowsservercore-1809/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-windowsservercore-1809
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_windowsservercore-1809/abcl-wrapper.bat b/abcl_windowsservercore-1809/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_windowsservercore-1809/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/abcl_windowsservercore-ltsc2016/Dockerfile b/abcl_windowsservercore-ltsc2016/Dockerfile
new file mode 100644
index 0000000..fc608b4
--- /dev/null
+++ b/abcl_windowsservercore-ltsc2016/Dockerfile
@@ -0,0 +1,33 @@
+#
+# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
+#
+# PLEASE DO NOT EDIT IT DIRECTLY.
+#
+FROM openjdk:15-jdk-windowsservercore-ltsc2016
+
+SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
+
+ENV ABCL_VERSION 1.8.0
+ENV ABCL_SHA256 f1404556a80ae65c9f0d3c41c910b72eacaedba2929901d06d609245addb7ec8
+
+RUN $ABCL_URL=('https://abcl.org/releases/{0}/abcl-bin-{0}.zip' -f $env:ABCL_VERSION); \
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
+ \
+ Write-Host ('Downloading ABCL {0} ...' -f $ABCL_URL); \
+ Invoke-WebRequest -Uri $ABCL_URL -OutFile 'abcl.zip'; \
+ Write-Host ('Verifying sha256 ({0}) ...' -f $env:ABCL_SHA256); \
+ if ((Get-FileHash 'abcl.zip' -Algorithm sha256).Hash -ne $env:ABCL_SHA256) { \
+ Write-Host 'FAILED!'; \
+ exit 1; \
+ }; \
+ Expand-Archive abcl.zip -DestinationPath C:\abcl-tmp; \
+ Move-Item C:\abcl-tmp\abcl-bin-$env:ABCL_VERSION C:\abcl; \
+ $machineKey = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey('SYSTEM\ControlSet001\Control\Session Manager\Environment\', $true); \
+ $machinePath = $machineKey.GetValue('PATH', [string]::Empty, 'DoNotExpandEnvironmentNames').ToString(); \
+ $newPath = ('C:\abcl;{0}' -f $machinePath); \
+ $machineKey.SetValue('PATH', $newPath, 'ExpandString'); \
+ $machineKey.Close(); \
+ java -jar C:\abcl\abcl.jar --batch --eval '(print (multiple-value-list (lisp-implementation-version)))'
+
+COPY abcl-wrapper.bat C:\\abcl\\abcl.bat
+CMD ["abcl.bat"]
diff --git a/abcl_windowsservercore-ltsc2016/abcl-wrapper.bat b/abcl_windowsservercore-ltsc2016/abcl-wrapper.bat
new file mode 100644
index 0000000..79b0aa4
--- /dev/null
+++ b/abcl_windowsservercore-ltsc2016/abcl-wrapper.bat
@@ -0,0 +1,2 @@
+@echo off
+java -cp C:\abcl\abcl.jar;"%CLASSPATH%" -XshowSettings:vm -Dfile.encoding=UTF-8 -XX:CompileThreshold=10 org.armedbear.lisp.Main %1 %2 %3 %4 %5 %6 %7 %8 %9
@easye is the ABCL maintainer and has blessed this image.
Documentation PR at https://github.com/docker-library/docs/pull/1864
Thanks for the proposal! :stars:
I wasn't familiar with ABCL, but I'm impressed that it's been around and active since 2003! :smile:
However, I'm having a hard time verifying the popularity of ABCL since the source/history of the project is a bit spread out (with what appears to be several "official" mirrors), so the usual metrics we look for to help give us clues don't appear to be very strong (GitHub Stars, Docker Hub Stars/Pulls, Twitter followers, etc). Is there an additional source of validation we could look to for the (potential) size of the interested community for this image? It seems like a niche userbase. :sweat_smile:
(I'm also honestly somewhat concerned looking at https://github.com/cl-docker-images and that there are several other "Common Lisp" variants there. :thinking:)
For context, the reviewers on this program are a small team, so we have to try to ensure our (limited) time is spent in such a way to benefit as many users as possible.
Perhaps this would make sense to publish to Docker Hub under a general "Common Lisp" organization to get interested users testing/validating it, and to help gauge the relative popularity such a thing might receive if it were to become a top-level image?
However, I'm having a hard time verifying the popularity of ABCL since the source/history of the project is a bit spread out (with what appears to be several "official" mirrors), so the usual metrics we look for to help give us clues don't appear to be very strong (GitHub Stars, Docker Hub Stars/Pulls, Twitter followers, etc). Is there an additional source of validation we could look to for the (potential) size of the interested community for this image? It seems like a niche userbase. 😅
We deliberately maintain the synchronicity of ABCL across svn bridged to git to maintain the reach-ability or decades-old URI references contained in the mailing lists, the Trac issue wiki, and as embedded in discussion platforms available via the World Wide Web. Due to tooling deficiencies that I have never had the time to properly overcome, the git mirrors are missing history prior to 2009 which the svn repository alone retains.
(I'm also honestly somewhat concerned looking at https://github.com/cl-docker-images and that there are several other "Common Lisp" variants there. 🤔)
One of the strengths of Common Lisp is the multiple implementations, as they each have different strengths in various deployment scenarios. ECL is based around a C transpiler, so is especially interesting for use embedded in a shared object, SBCL has an extremely optimized compiler, CCL has a long heritage of debugging facilities, and ABCL's hosting on the Java Virtual Machine (JVM)allows easy interop with the Java ecosystem.
For context, the reviewers on this program are a small team, so we have to try to ensure our (limited) time is spent in such a way to benefit as many users as possible.
ABCL is perhaps a square peg in a round hole for usual metrics. To be brutally honest, when newcomers think they want to run a Lisp on the JVM these days, they are going to find and use Clojure. But those who know something about what a conforming ANSI Common Lisp implementation provides, usually because they have existing software, are happy to discover ABCL exists when their runtime requirements suggest that they need to run on the JVM. Many times have I gotten a request out of the blue on the mailing list for help with a problem running a large, mature, unusual software system like a theorem prover, or a symbolic algebra system on ABCL. Since most of these software systems are decades old, they sort of predate the "social mediafication" of software development.
I do think that more widespread, trusted Docker images will get more people to give ABCL a shot.
As you've probably guessed from looking at the cl-docker-images project, our end goal is to get official Docker images for every widely used Common Lisp implementation. As easye said, while they all implement the same language each has its own extensions and claim to fame. But because they are all developed by different teams, we don't have an idea at the moment of how many would want images in the program. We started with ABCL because easye was enthusiastic about getting an image released and we would use it as a trial run before reaching out to the other maintainers.
Perhaps this would make sense to publish to Docker Hub under a general "Common Lisp" organization to get interested users testing/validating it, and to help gauge the relative popularity such a thing might receive if it were to become a top-level image?
We have recently made the clfoundation org to host these images (better org names were sadly illegal or already squatted). It also hosts other images which are outside the scope of the Official Images program. Many of the images are derived from images on my personal account.
It is rather hard to get a feel for the popularity of an individual implementation. Both because the CL community is very decentralized (even on Docker Hub there are a smattering of images) and because the implementations mostly do predate the "social mediafication" of software (many implementations have roots in the 1980s) that information simply isn't tracked or treated as important.
I would say that within the CL community SBCL is perceived as the most popular open source implementation. CLASP is probably the youngest widely used implementation (claim to fame: C++ interop) and is one of the only implementations I can think of that grew up in the age of Github (the other being SICL). I'd be curious if any of those implementations meet your typical standards for popularity.
Apologies for the long silence. :bowing_man:
Finally coming back to review and if you are still interested, we'd love to move forward. :heart:
From a first pass review, I think the main feedback I have is about the constant changing of directory via WORKDIR
; since this often creates a layer along with modifying container metadata, this Dockerfile command is not as cheap as just cd
in the RUN
line. This will also allow you to control the permissions or ownership, if desired, of any new directories; whereas docker creates them as root
owned. We normally only recommend using WORKDIR
for a change that should persist in the resulting image.
The other feedback is just to update the branch here with the most recent versions that are based on newer/supported releases of OpenJDK since some OpenJDK releases went end of life (15 and 16 had quite short life cycles, but 17 is an LTS release).
I'm updating the status of this PR to "draft" for now. When it's ready for re-review, please remove the draft status and leave a comment (GitHub unfortunately does not notify maintainers for draft state changes).