mirror of
https://github.com/casjaysdevdocker/deno
synced 2025-01-18 12:34:21 -05:00
🗃️ Committing everything that changed 🗃️
This commit is contained in:
parent
b4e47444f3
commit
26ce86d10e
55
Dockerfile
55
Dockerfile
@ -1,22 +1,34 @@
|
||||
#FROM casjaysdevdocker/debian:latest as build
|
||||
FROM casjaysdevdocker/alpine:latest AS build
|
||||
|
||||
ENV DENO_VERSION="v1.26.1" \
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
ARG alpine_version="v3.16" \
|
||||
TIMEZONE="America/New_York" \
|
||||
IMAGE_NAME="alpine" \
|
||||
LICENSE="MIT" \
|
||||
PORTS="1-65535"
|
||||
|
||||
RUN apt update && \
|
||||
apt upgrade -yy && \
|
||||
apt install unzip -yy && \
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
ENV TZ="$TIMEZONE" \
|
||||
SHELL="/bin/bash" \
|
||||
ENV="$HOME/.bashrc" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="${HOSTNAME:-casjaysdev-$IMAGE_NAME}" \
|
||||
DENO_VERSION="v1.26.1"
|
||||
|
||||
RUN set -ex; \
|
||||
rm -Rf "/etc/apk/repositories"; \
|
||||
echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/main" >> "/etc/apk/repositories"; \
|
||||
echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/community" >> "/etc/apk/repositories"; \
|
||||
if [ "$alpine_version" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/testing" >> "/etc/apk/repositories" ; fi ; \
|
||||
apk update --update-cache && apk add \
|
||||
unzip
|
||||
|
||||
COPY ./bin/. /usr/local/bin/
|
||||
COPY ./config/. /config/
|
||||
COPY ./data/. /data/
|
||||
COPY ./data/. /usr/local/share/template-files/data/
|
||||
COPY ./config/. /usr/local/share/template-files/config/
|
||||
|
||||
RUN chmod -Rf 755 /usr/local/bin/get-deno.sh && \
|
||||
DEBUG="true" /usr/local/bin/get-deno.sh && \
|
||||
rm -Rf /usr/local/bin/get-deno.sh
|
||||
rm -Rf /usr/local/bin/get-deno.sh /bin/.gitkeep /config /data /var/cache/apk/*
|
||||
|
||||
FROM scratch
|
||||
|
||||
@ -36,16 +48,23 @@ LABEL org.label-schema.name="deno" \
|
||||
maintainer="CasjaysDev <docker-admin@casjaysdev.com>"
|
||||
|
||||
ENV SHELL="/bin/bash" \
|
||||
ENV="$HOME/.bashrc" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="casjaysdev-deno" \
|
||||
TZ="${TZ:-America/New_York}"
|
||||
|
||||
WORKDIR /data
|
||||
VOLUME ["/data"]
|
||||
EXPOSE 1-65535
|
||||
HOSTNAME="casjaysdev-alpine" \
|
||||
TZ="${TZ:-America/New_York}" \
|
||||
TIMEZONE="$TIMEZONE" \
|
||||
PHP_SERVER="none" \
|
||||
PORT=""
|
||||
|
||||
COPY --from=build /. /
|
||||
|
||||
HEALTHCHECK --interval=15s --timeout=3s CMD [ "/usr/local/bin/entrypoint-deno.sh", "healthcheck" ]
|
||||
WORKDIR /data/htdocs/www
|
||||
|
||||
VOLUME [ "/config","/data" ]
|
||||
|
||||
EXPOSE $PORTS
|
||||
|
||||
ENTRYPOINT [ "tini", "-p", "SIGTERM", "--" ]
|
||||
CMD [ "/usr/local/bin/entrypoint-deno.sh" ]
|
||||
HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint-deno.sh", "healthcheck" ]
|
||||
|
||||
ENTRYPOINT [ "/usr/local/bin/entrypoint-deno.sh" ]
|
||||
|
@ -47,9 +47,9 @@ fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
[[ -f "/config/.env" ]] && source /config/.env
|
||||
|
||||
if [ -z "$1" ] && [ -z "$(ls -A "" 2>/dev/null)" ]; then
|
||||
if [ -z "$1" ] && [ -z "$(ls -A "/data/htdocs/www" 2>/dev/null)" ]; then
|
||||
FRESH_INSTALL="true"
|
||||
deno run -A -r https://fresh.deno "/data/"
|
||||
deno run -A -r https://fresh.deno "/data/htdocs/www"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
case "$1" in
|
||||
@ -67,13 +67,13 @@ sh | bash | shell | /bin/sh | /bin/bash)
|
||||
|
||||
deno)
|
||||
shift 1
|
||||
deno run --allow-net "${@:-/data/sample.ts}"
|
||||
deno run --allow-net "${@:-/data/htdocs/www/sample.ts}"
|
||||
;;
|
||||
*)
|
||||
if [ "$FRESH_INSTALL" = "true" ]; then
|
||||
deno --allow-all task start
|
||||
else
|
||||
deno run --watch --allow-all "${@:-/data/sample.ts}"
|
||||
deno run --watch --allow-all "${@:-/data/htdocs/www/sample.ts}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
@ -18,18 +18,19 @@
|
||||
[ -n "$DEBUG" ] && set -x
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
DENO_VERSION="${DENO_VERSION:-v1.26.1}"
|
||||
DENO_URL_x64="https://github.com/denoland/deno/releases/download/latest/deno-x86_64-unknown-linux-gnu.zip"
|
||||
DENO_URL_ARM64="https://github.com/LukeChannings/deno-arm64/releases/latest/download/deno-linux-arm64.zip"
|
||||
DENO_URL_x64_LATEST="https://github.com/denoland/deno/releases/download/latest/deno-x86_64-unknown-linux-gnu.zip"
|
||||
DENO_URL_x64_VERSION="https://github.com/denoland/deno/releases/download/$DENO_VERSION/deno-x86_64-unknown-linux-gnu.zip"
|
||||
DENO_URL_ARM64_LATEST="https://github.com/LukeChannings/deno-arm64/releases/latest/download/deno-linux-arm64.zip"
|
||||
DENO_URL_ARM64_VERSION="https://github.com/LukeChannings/deno-arm64/releases/download/$DENO_VERSION/deno-linux-arm64.zip"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__get_file() {
|
||||
local version_url="${URL//latest/$DENO_VERSION/}"
|
||||
if curl -q -LSSf -o "$FILE" "$URL"; then
|
||||
DOWNLOAD_URL="$URL"
|
||||
if curl -q -LSsf -o "$FILE" "$URL"||false; then
|
||||
return 0
|
||||
elif curl -q -LSsf -o "$FILE" "$version_url"; then
|
||||
DOWNLOAD_URL="$version_url"
|
||||
elif curl -q -LSsf -o "$FILE" "$LATEST_URL"||false; then
|
||||
URL="$LATEST_URL"
|
||||
return 0
|
||||
else
|
||||
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
@ -37,8 +38,14 @@ __get_file() {
|
||||
# AMD64 binary
|
||||
if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "x86_64" ]; then
|
||||
ARCH=x86_64
|
||||
URL="$DENO_URL_x64"
|
||||
FILE="/tmp/deno-$ARCH.zip"
|
||||
LATEST_URL="$DENO_URL_x64_LATEST"
|
||||
if [ "$DENO_VERSION" = "latest" ] || [ -z "$DENO_VERSION" ]; then
|
||||
DENO_VERSION="latest"
|
||||
URL="$DENO_URL_x64_LATEST"
|
||||
else
|
||||
URL="$DENO_URL_x64_VERSION"
|
||||
fi
|
||||
echo "grabbing ${DENO_VERSION}/deno-x86_64-unknown-linux-gnu.zip from denoland for $ARCH"
|
||||
__get_file && if [ -f "/tmp/deno-$ARCH.zip" ]; then
|
||||
mkdir -p "/tmp/deno-$ARCH" && cd "/tmp/deno-$ARCH" || exit 10
|
||||
@ -48,15 +55,21 @@ if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "x86_64" ]; then
|
||||
rm -Rf "/tmp/deno-$ARCH.zip" "/tmp/deno-$ARCH"
|
||||
fi
|
||||
else
|
||||
echo "Failed to download deno from $DOWNLOAD_URL"
|
||||
echo "Failed to download deno from $URL"
|
||||
exit 2
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# ARM64 binary
|
||||
if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then
|
||||
ARCH=arm64
|
||||
URL="$DENO_URL_ARM64"
|
||||
FILE="/tmp/deno-$ARCH.zip"
|
||||
LATEST_URL="$DENO_URL_ARM64_LATEST"
|
||||
if [ "$DENO_VERSION" = "latest" ] || [ -z "$DENO_VERSION" ]; then
|
||||
DENO_VERSION="latest"
|
||||
URL="$DENO_URL_ARM64_LATEST"
|
||||
else
|
||||
URL="$DENO_URL_ARM64_VERSION"
|
||||
fi
|
||||
echo "grabbing ${DENO_VERSION}/deno-linux-arm64.zip from LukeChannings for $ARCH"
|
||||
__get_file && if [ -f "/tmp/deno-$ARCH.zip" ]; then
|
||||
mkdir -p "/tmp/deno-$ARCH" && cd "/tmp/deno-$ARCH" || exit 10
|
||||
@ -66,7 +79,7 @@ if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then
|
||||
rm -Rf "/tmp/deno-$ARCH.zip" "/tmp/deno-$ARCH"
|
||||
fi
|
||||
else
|
||||
echo "Failed to download deno from $DOWNLOAD_URL"
|
||||
echo "Failed to download deno from $URL"
|
||||
exit 2
|
||||
fi
|
||||
[ -f "$(which "deno")" ] && deno upgrade && exit 0 || exit 10
|
||||
|
Loading…
x
Reference in New Issue
Block a user