implementation-specific.page 2.76 KB
Newer Older
Eric Timmons's avatar
Eric Timmons committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
;;;;;
title: Implementation Specific Images
format: md
URL: images/implementation-specific.html
;;;;;

These images contain a single Common Lisp implementation. They should all
follow best practices for Docker and be designed so that if upstream wanted,
the image could be submitted
to
[Docker's Official Image Program](https://github.com/docker-library/official-images) (aka
the Docker standard library).

We currently publish images for the following implementations:

-   **[ABCL](https://hub.docker.com/r/clfoundation/abcl):** Source
17
18
    at <https://gitlab.common-lisp.net/cl-docker-images/abcl>. This has been
    [submitted to Docker's Official Images program](https://github.com/docker-library/official-images/pull/9488).
Eric Timmons's avatar
Eric Timmons committed
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-   **[CCL](https://hub.docker.com/r/clfoundation/ccl):** Source
    at <https://gitlab.common-lisp.net/cl-docker-images/ccl>
-   **[ECL](https://hub.docker.com/r/clfoundation/ecl):** Source
    at <https://gitlab.common-lisp.net/cl-docker-images/ecl>
-   **[SBCL](https://hub.docker.com/r/clfoundation/sbcl):** Source
    at <https://gitlab.common-lisp.net/cl-docker-images/sbcl>

If you would like to request or offer to support a new implementation specific
image, please reach out.

For every supported version of an implementation, the default tag should be a
"fat" image that contains libraries equivalent to those found
in [buildpack-deps](https://hub.docker.com/_/buildpack-deps), the CL
implementation itself, the source code for the implementation, a specialized
entrypoint, and the Quicklisp installer. The entrypoint should invoke the the
implemtation if no command is specified or the first element of the command
list is an option (starts with a `-`).

Only the Quicklisp installer is included as an installed Quicklisp is not
particularly amenable to Dockerization for two reasons. First there is no real
system-wide install option, the user has to have write bits to the entire
Quicklisp hierarchy. Second, installing fetches the package lists, pinning them
to the point in time the image was made.

In addition to the fat images, there should be a set of tags for a "slim"
variant that includes only the implementation, the dependencies needed to start
the implementation, and the same specialized entrypoint as above.

For implementations that support it, there should also be a set of
`windowsservercore` based tags and Alpine based tags (useful for space
constraints or creating static executables).

We try to bump versions within a week of a new version of the implementation
being released. In addition to building images for released versions, we
attempt to build nightly images directly from the implementation's source
control. However, these nightly images should be considered "best effort" and
may get scaled back or stopped altogether at some point in the future.