Skip to content

Support multiple entrypoint scripts in a container for use in containerized scientific tools.

License

Notifications You must be signed in to change notification settings

JaneliaSciComp/entrypoints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Entrypoints

Simple support for multiple entrypoint scripts in an OCI container. Just install this tiny binary as your ENTRYPOINT and put all of your entrypoint shell scripts in one directory. The binary takes care of providing a listing of valid "apps" and lets the user invoke them without knowing the internals of the container filesystem.

Installation

The following Dockerfile commands install the entrypoint binary into /app/entrypoints and set it as the entrypoint:

ARG ENTRYPOINTS_VERSION=latest
WORKDIR app
RUN curl -sL https://github.com/JaneliaSciComp/entrypoints/releases/download/${ENTRYPOINTS_VERSION}/entrypoints_linux_x86_64.tar.gz | tar -xz -C /app
ENTRYPOINT [ "/app/entrypoints", "-s", "/app/scripts/cmd" ]

A multi-stage build is recommended to improve build speed:

FROM janeliascicomp/common-tools:1.0.2 as entrypoints-builder
ARG ENTRYPOINTS_VERSION=0.1.1
RUN curl -sL https://github.com/JaneliaSciComp/entrypoints/releases/download/${ENTRYPOINTS_VERSION}/entrypoints_linux_x86_64.tar.gz | tar -xz -C /tmp

In the final container:

COPY --from=entrypoints-builder --chown=root:root /tmp/entrypoints /app/entrypoints
ENTRYPOINT [ "/app/entrypoints", "-s", "/app/scripts/cmd" ]

See also: SCIF

Development

Build

go install

Release

VERSION=<version number>
git tag -a $VERSION -m "Release $VERSION"
git push origin $VERSION
goreleaser --rm-dist

About

Support multiple entrypoint scripts in a container for use in containerized scientific tools.

Topics

Resources

License

Stars

Watchers

Forks

Languages