Commit 1d700c88 authored by Eric Timmons's avatar Eric Timmons
Browse files

Add development image page

parent 5db0e8bd
Pipeline #2631 passed with stage
in 2 minutes and 2 seconds
;;;;;
title: Development Images
format: md
URL: images/development.html
;;;;;
These images contain the kitchen sink and are geared toward interactive
development. We *do not* recommended that you use images for CI or deployment
purposes.
Currently, a single image is published in this category:
- **[cl-devel](https://hub.docker.com/r/clfoundation/cl-devel):** Source at
<https://gitlab.common-lisp.net/cl-docker-images/cl-devel>
It is created only for `linux/amd64` and there is only one variant of the
image, based on Debian Buster. These things can be changed if someone has the
time and inclination.
This image has a non-privileged user that is used by default: `cl`. The UID/GID
of this user is 1000/1000, but [`fixuid`](https://github.com/boxboat/fixuid) is
used in the entrypoint to change the UID/GID to whatever the container is
started with. This is meant to make it easier for you to mount folders from
your host into the image and not worry about permissions getting screwed up.
This image contains the following Lisp implementations:
- ABCL v1.8.0 (on jdk11)
- CCL v1.12.0
- ECL v20.4.24
- SBCL v2.1.0
Additionally, the following Lisp utilities are installed:
- **ASDF v3.3.4:** The source code is located in
`/usr/local/share/common-lisp/source/asdf`. The first time you attempt to use
ASDF for anything non trivial, it will upgrade itself to this version.
- **Quicklisp:** Client v2020-01-04 and Dist v2020-12-20. It is installed to
`/home/cl/quicklisp/`
- **CL Launch v4.1.3:** A useful program for running Common Lisp scripts.
Last, the goal is to install all system packages that would be useful for
development. This includes git, curl, etc (everything from
the [`buildpack-deps`](https://hub.docker.com/_/buildpack-deps)
image). Additionally, every foreign dependency of every system in Quicklisp. It
is quite probable we're missing something for Quicklisp. If you find this to be
the case, please open an issue.
Each Lisp implementation a user init file that loads ASDF and then loads
Quicklisp if the `QUICKLISP_LOAD` environment variable is "yes/true/1/y" (which
it is by default).
All of this is to make it trivial for a Lisp newbie to get up and running
easily, using the tools most commonly used in the community. However, if you
get to the point of actually doing development with this image, we **strongly**
recommend mounting files from your Docker host into the image. This way you can
easily develop code using emacs on your host, you can customize the config, and
you can persist the fasl cache so things don't take as long to build.
We recommend creating a folder on your host's filesystem and mounting it
directly on top of `/home/cl` in the container. You can then create Lisp init
files that suit you, install the version of Quicklisp you want, etc. ASDF by
default cache fasls to `/home/cl/.cache/common-lisp`, so mounting a folder to
`/home/cl` will cause those to be persisted between containers as well.
The next thing on the Roadmap that is pertinent to these images is to transfer
the [`slime-docker`](https://github.com/daewok/slime-docker) Emacs package into
this project, revitalize it (largely to account for the most recent versions of
Docker on MacOS and Windows), and make it use this image by default.
......@@ -19,9 +19,9 @@ themselves, we plan on show casing uses of these images.
We publish the following types of images:
- [**Implementation specific**](images/implementation-specific.html): These
- **[Implementation specific](images/implementation-specific.html):** These
images contain a single Common Lisp implementation.
- [**Development**](images/development.html): These images are geared toward
- **[Development](images/development.html):** These images are geared toward
interactive development.
We publish images for the following platforms. If someone would like to
......@@ -35,9 +35,9 @@ please reach out!
The following pages contain more detail on this project:
- [**Roadmap**](roadmap.html): Where this project is going in the future.
- [**Infrastructure**](infrastructure.html): Where the code is hosted and how
- **[Roadmap](roadmap.html):** Where this project is going in the future.
- **[Infrastructure](infrastructure.html):** Where the code is hosted and how
the images are built.
- [**History**](history.html): Where these images came from.
- [**Code of Conduct**](code-of-conduct.html): How we expect contributors to
- **[History](history.html):** Where these images came from.
- **[Code of Conduct](code-of-conduct.html):** How we expect contributors to
interact with each other.
......@@ -4,6 +4,10 @@ format: md
URL: roadmap.html
;;;;;
- Transfer [`slime-docker`](https://github.com/daewok/slime-docker) to this
project. Update it to work on the latest Windows and MacOS Docker
installs. I'm sure that there are various ease of use updates that can be
performed as well.
- Sign the images pushed to the clfoundation org on Docker Hub. Blocked by:
1. Need to have a second person willing to have signing abilities to
increase the bus factor.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment