53 lines
1.8 KiB
Docker
53 lines
1.8 KiB
Docker
FROM alpine:3.12
|
|
|
|
LABEL org.opencontainers.image.description="Docker-Ngrok" \
|
|
org.opencontainers.image.authors="HHF Technology (https://forum.hhf.technology/)" \
|
|
org.opencontainers.image.url="https://git.hhf.technology/hhf/docker-ngrok" \
|
|
org.opencontainers.image.documentation="https://git.hhf.technology/hhf/docker-ngrok" \
|
|
org.opencontainers.image.source="https://git.hhf.technology/hhf/docker-ngrok"
|
|
|
|
# https://github.com/sgerrand/alpine-pkg-glibc
|
|
ARG GLIBC_VERSION=2.31-r0
|
|
|
|
RUN set -x \
|
|
&& apk add --no-cache -t .deps ca-certificates \
|
|
# Install glibc on Alpine (required by docker-compose)
|
|
# See also https://github.com/gliderlabs/docker-alpine/issues/11
|
|
&& wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
|
|
&& wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \
|
|
&& apk add glibc-${GLIBC_VERSION}.apk \
|
|
&& rm glibc-${GLIBC_VERSION}.apk \
|
|
&& apk del --purge .deps
|
|
|
|
RUN set -x \
|
|
# Install ngrok (latest official stable from https://ngrok.com/download).
|
|
&& apk add --no-cache curl \
|
|
&& APKARCH="$(apk --print-arch)" \
|
|
&& case "$APKARCH" in \
|
|
armhf) NGROKARCH="arm" ;; \
|
|
armv7) NGROKARCH="arm" ;; \
|
|
armel) NGROKARCH="arm" ;; \
|
|
x86) NGROKARCH="386" ;; \
|
|
x86_64) NGROKARCH="amd64" ;; \
|
|
esac \
|
|
&& curl -Lo /ngrok.tgz https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-$NGROKARCH.tgz \
|
|
&& tar -xzf /ngrok.tgz \
|
|
&& mv /ngrok /bin \
|
|
&& chmod 755 /bin/ngrok \
|
|
&& rm -f /ngrok.tgz \
|
|
# Create non-root user.
|
|
&& adduser -h /home/ngrok -D -u 6737 ngrok
|
|
|
|
# Add config script.
|
|
COPY --chown=ngrok ngrok.yml /home/ngrok/.ngrok2/
|
|
COPY entrypoint.sh /
|
|
|
|
USER ngrok
|
|
ENV USER=ngrok
|
|
|
|
# Basic sanity check.
|
|
RUN ngrok --version
|
|
|
|
EXPOSE 4040
|
|
|
|
CMD ["/entrypoint.sh"]
|