text:
# ffmpeg - http://ffmpeg.org/download.html
#
# From https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
#
# https://hub.docker.com/r/jrottenberg/ffmpeg/
#
#
FROM    centos:7 AS base

RUN     yum -y install libgomp && \
        yum clean all;

FROM        base AS build

WORKDIR     /tmp/workdir

ARG        PKG_CONFIG_PATH=/opt/ffmpeg/lib/pkgconfig
ARG        LD_LIBRARY_PATH=/opt/ffmpeg/lib
ARG        PREFIX=/opt/ffmpeg
ARG        MAKEFLAGS="-j2"

ENV         FFMPEG_VERSION=4.0.5 \
            AOM_VERSION=v1.0.0 \
            FDKAAC_VERSION=0.1.5 \
            FONTCONFIG_VERSION=2.12.4 \
            FREETYPE_VERSION=2.5.5 \
            FRIBIDI_VERSION=0.19.7 \
            KVAZAAR_VERSION=1.2.0 \
            LAME_VERSION=3.100 \
            LIBASS_VERSION=0.13.7 \
            LIBPTHREAD_STUBS_VERSION=0.4 \
            LIBVIDSTAB_VERSION=1.1.0 \
            LIBXCB_VERSION=1.13.1 \
            XCBPROTO_VERSION=1.13 \
            OGG_VERSION=1.3.2 \
            OPENCOREAMR_VERSION=0.1.5 \
            OPUS_VERSION=1.2 \
            OPENJPEG_VERSION=2.1.2 \
            THEORA_VERSION=1.1.1 \
            VORBIS_VERSION=1.3.5 \
            VPX_VERSION=1.8.0 \
            WEBP_VERSION=1.0.2 \
            X264_VERSION=20170226-2245-stable \
            X265_VERSION=3.1.1 \
            XAU_VERSION=1.0.9 \
            XORG_MACROS_VERSION=1.19.2 \
            XPROTO_VERSION=7.0.31 \
            XVID_VERSION=1.3.4 \
            SRC=/usr/local

ARG         FREETYPE_SHA256SUM="5d03dd76c2171a7601e9ce10551d52d4471cf92cd205948e60289251daddffa8 freetype-2.5.5.tar.gz"
ARG         FRIBIDI_SHA256SUM="3fc96fa9473bd31dcb5500bdf1aa78b337ba13eb8c301e7c28923fea982453a8 0.19.7.tar.gz"
ARG         LIBASS_SHA256SUM="8fadf294bf701300d4605e6f1d92929304187fca4b8d8a47889315526adbafd7 0.13.7.tar.gz"
ARG         LIBVIDSTAB_SHA256SUM="14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb v1.1.0.tar.gz"
ARG         OGG_SHA256SUM="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692 libogg-1.3.2.tar.gz"
ARG         OPUS_SHA256SUM="77db45a87b51578fbc49555ef1b10926179861d854eb2613207dc79d9ec0a9a9 opus-1.2.tar.gz"
ARG         THEORA_SHA256SUM="40952956c47811928d1e7922cda3bc1f427eb75680c3c37249c91e949054916b libtheora-1.1.1.tar.gz"
ARG         VORBIS_SHA256SUM="6efbcecdd3e5dfbf090341b485da9d176eb250d893e3eb378c428a2db38301ce libvorbis-1.3.5.tar.gz"
ARG         XVID_SHA256SUM="4e9fd62728885855bc5007fe1be58df42e5e274497591fec37249e1052ae316f xvidcore-1.3.4.tar.gz"

RUN     buildDeps="autoconf \
                   automake \
                   bzip2 \
                   cmake \
                   expat-devel \
                   gcc \
                   gcc-c++ \
                   git \
                   gperf \
                   libtool \
                   make \
                   nasm \
                   perl \
                   openssl-devel \
                   tar \
                   yasm \
                   which \
                   zlib-devel" && \
        echo "${SRC}/lib" > /etc/ld.so.conf.d/libc.conf && \
        yum --enablerepo=extras install -y epel-release && \
        yum install -y ${buildDeps}
## opencore-amr https://sourceforge.net/projects/opencore-amr/
RUN \
        DIR=/tmp/opencore-amr && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://versaweb.dl.sourceforge.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
        tar -zx --strip-components=1 && \
        ./configure --prefix="${PREFIX}" --enable-shared  && \
        make && \
        make install && \
        rm -rf ${DIR}
## x264 http://www.videolan.org/developers/x264.html
RUN \
        DIR=/tmp/x264 && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2 | \
        tar -jx --strip-components=1 && \
        ./configure --prefix="${PREFIX}" --enable-shared --enable-pic --disable-cli && \
        make && \
        make install && \
        rm -rf ${DIR}
### x265 http://x265.org/
RUN \
        DIR=/tmp/x265 && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://download.videolan.org/pub/videolan/x265/x265_${X265_VERSION}.tar.gz  | \
        tar -zx && \
        cd x265_${X265_VERSION}/build/linux && \
        sed -i "/-DEXTRA_LIB/ s/$/ -DCMAKE_INSTALL_PREFIX=\${PREFIX}/" multilib.sh && \
        sed -i "/^cmake/ s/$/ -DENABLE_CLI=OFF/" multilib.sh && \
        ./multilib.sh && \
        make -C 8bit install && \
        rm -rf ${DIR}
### libogg https://www.xiph.org/ogg/
RUN \
        DIR=/tmp/ogg && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz && \
        echo ${OGG_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f libogg-${OGG_VERSION}.tar.gz && \
        ./configure --prefix="${PREFIX}" --enable-shared  && \
        make && \
        make install && \
        rm -rf ${DIR}
### libopus https://www.opus-codec.org/
RUN \
        DIR=/tmp/opus && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
        echo ${OPUS_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
        autoreconf -fiv && \
        ./configure --prefix="${PREFIX}" --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
### libvorbis https://xiph.org/vorbis/
RUN \
        DIR=/tmp/vorbis && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz && \
        echo ${VORBIS_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f libvorbis-${VORBIS_VERSION}.tar.gz && \
        ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
### libtheora http://www.theora.org/
RUN \
        DIR=/tmp/theora && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz && \
        echo ${THEORA_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f libtheora-${THEORA_VERSION}.tar.gz && \
        ./configure --prefix="${PREFIX}" --with-ogg="${PREFIX}" --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
### libvpx https://www.webmproject.org/code/
RUN \
        DIR=/tmp/vpx && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://codeload.github.com/webmproject/libvpx/tar.gz/v${VPX_VERSION} | \
        tar -zx --strip-components=1 && \
        ./configure --prefix="${PREFIX}" --enable-vp8 --enable-vp9 --enable-vp9-highbitdepth --enable-pic --enable-shared \
        --disable-debug --disable-examples --disable-docs --disable-install-bins  && \
        make && \
        make install && \
        rm -rf ${DIR}
### libwebp https://developers.google.com/speed/webp/
RUN \
        DIR=/tmp/vebp && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz | \
        tar -zx --strip-components=1 && \
        ./configure --prefix="${PREFIX}" --enable-shared  && \
        make && \
        make install && \
        rm -rf ${DIR}
### libmp3lame http://lame.sourceforge.net/
RUN \
        DIR=/tmp/lame && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://versaweb.dl.sourceforge.net/project/lame/lame/$(echo ${LAME_VERSION} | sed -e 's/[^0-9]*\([0-9]*\)[.]\([0-9]*\)[.]\([0-9]*\)\([0-9A-Za-z-]*\)/\1.\2/')/lame-${LAME_VERSION}.tar.gz | \
        tar -zx --strip-components=1 && \
        ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --enable-shared --enable-nasm --enable-pic --disable-frontend && \
        make && \
        make install && \
        rm -rf ${DIR}
### xvid https://www.xvid.com/
RUN \
        DIR=/tmp/xvid && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz && \
        echo ${XVID_SHA256SUM} | sha256sum --check && \
        tar -zx -f xvidcore-${XVID_VERSION}.tar.gz && \
        cd xvidcore/build/generic && \
        ./configure --prefix="${PREFIX}" --bindir="${PREFIX}/bin" --datadir="${DIR}" --enable-shared --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
### fdk-aac https://github.com/mstorsjo/fdk-aac
RUN \
        DIR=/tmp/fdk-aac && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://github.com/mstorsjo/fdk-aac/archive/v${FDKAAC_VERSION}.tar.gz | \
        tar -zx --strip-components=1 && \
        autoreconf -fiv && \
        ./configure --prefix="${PREFIX}" --enable-shared --datadir="${DIR}" && \
        make && \
        make install && \
        rm -rf ${DIR}
## openjpeg https://github.com/uclouvain/openjpeg
RUN \
        DIR=/tmp/openjpeg && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sL https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz | \
        tar -zx --strip-components=1 && \
        cmake -DBUILD_THIRDPARTY:BOOL=ON -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
        make && \
        make install && \
        rm -rf ${DIR}
## freetype https://www.freetype.org/
RUN  \
        DIR=/tmp/freetype && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://download.savannah.gnu.org/releases/freetype/freetype-${FREETYPE_VERSION}.tar.gz && \
        echo ${FREETYPE_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f freetype-${FREETYPE_VERSION}.tar.gz && \
        ./configure --prefix="${PREFIX}" --disable-static --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
## libvstab https://github.com/georgmartius/vid.stab
RUN  \
        DIR=/tmp/vid.stab && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://github.com/georgmartius/vid.stab/archive/v${LIBVIDSTAB_VERSION}.tar.gz &&\
        echo ${LIBVIDSTAB_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f v${LIBVIDSTAB_VERSION}.tar.gz && \
        cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" . && \
        make && \
        make install && \
        rm -rf ${DIR}
## fridibi https://www.fribidi.org/
# + https://github.com/fribidi/fribidi/issues/8
RUN  \
        DIR=/tmp/fribidi && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://github.com/fribidi/fribidi/archive/${FRIBIDI_VERSION}.tar.gz && \
        echo ${FRIBIDI_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f ${FRIBIDI_VERSION}.tar.gz && \
        sed -i 's/^SUBDIRS =.*/SUBDIRS=gen.tab charset lib/' Makefile.am && \
        ./bootstrap --no-config && \
        ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
        make -j 1 && \
        make install && \
        rm -rf ${DIR}
## fontconfig https://www.freedesktop.org/wiki/Software/fontconfig/
RUN  \
        DIR=/tmp/fontconfig && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.bz2 &&\
        tar -jx --strip-components=1 -f fontconfig-${FONTCONFIG_VERSION}.tar.bz2 && \
        ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
## libass https://github.com/libass/libass
RUN  \
        DIR=/tmp/libass && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://github.com/libass/libass/archive/${LIBASS_VERSION}.tar.gz &&\
        echo ${LIBASS_SHA256SUM} | sha256sum --check && \
        tar -zx --strip-components=1 -f ${LIBASS_VERSION}.tar.gz && \
        ./autogen.sh && \
        ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}
## kvazaar https://github.com/ultravideo/kvazaar
RUN \
        DIR=/tmp/kvazaar && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://github.com/ultravideo/kvazaar/archive/v${KVAZAAR_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f v${KVAZAAR_VERSION}.tar.gz && \
        ./autogen.sh && \
        ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
	DIR=/tmp/aom && \
        git clone --branch ${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom ${DIR} ; \
        cd ${DIR} ; \
        rm -rf CMakeCache.txt CMakeFiles ; \
        mkdir -p ./aom_build ; \
        cd ./aom_build ; \
        cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" -DBUILD_SHARED_LIBS=1 ..; \
        make ; \
        make install ; \
        rm -rf ${DIR}

## libxcb (and supporting libraries) for screen capture https://xcb.freedesktop.org/
RUN \
        DIR=/tmp/xorg-macros && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://www.x.org/archive//individual/util/util-macros-${XORG_MACROS_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f util-macros-${XORG_MACROS_VERSION}.tar.gz && \
        ./configure -prefix="${PREFIX}" && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
        DIR=/tmp/xproto && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://www.x.org/archive/individual/proto/xproto-${XPROTO_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f xproto-${XPROTO_VERSION}.tar.gz && \
        ./configure -prefix="${PREFIX}" && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
        DIR=/tmp/libXau && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://www.x.org/archive/individual/lib/libXau-${XAU_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f libXau-${XAU_VERSION}.tar.gz && \
        ./configure -prefix="${PREFIX}" && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
        DIR=/tmp/libpthread-stubs && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://xcb.freedesktop.org/dist/libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f libpthread-stubs-${LIBPTHREAD_STUBS_VERSION}.tar.gz && \
        PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" ./configure -prefix="${PREFIX}" && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
        DIR=/tmp/libxcb-proto && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://xcb.freedesktop.org/dist/xcb-proto-${XCBPROTO_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f xcb-proto-${XCBPROTO_VERSION}.tar.gz && \
        ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \
        PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" ./configure -prefix="${PREFIX}" && \
        make && \
        make install && \
        rm -rf ${DIR}

RUN \
        DIR=/tmp/libxcb && \
        mkdir -p ${DIR} && \
        cd ${DIR} && \
        curl -sLO https://xcb.freedesktop.org/dist/libxcb-${LIBXCB_VERSION}.tar.gz &&\
        tar -zx --strip-components=1 -f libxcb-${LIBXCB_VERSION}.tar.gz && \
        ACLOCAL_PATH="${PREFIX}/share/aclocal" ./autogen.sh && \
        PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" ./configure -prefix="${PREFIX}" --disable-static --enable-shared && \
        make && \
        make install && \
        rm -rf ${DIR}

## ffmpeg https://ffmpeg.org/
RUN  \
        DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
        curl -sLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \
        tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2

RUN \
        DIR=/tmp/ffmpeg && mkdir -p ${DIR} && cd ${DIR} && \
        ./configure \
        --disable-debug \
        --disable-doc \
        --disable-ffplay \
        --enable-shared \
        --enable-avresample \
        --enable-libopencore-amrnb \
        --enable-libopencore-amrwb \
        --enable-gpl \
        --enable-libass \
        --enable-libfreetype \
        --enable-libvidstab \
        --enable-libmp3lame \
        --enable-libopenjpeg \
        --enable-libopus \
        --enable-libtheora \
        --enable-libvorbis \
        --enable-libvpx \
        --enable-libwebp \
        --enable-libxcb \
        --enable-libx265 \
        --enable-libxvid \
        --enable-libx264 \
        --enable-nonfree \
        --enable-openssl \
        --enable-libfdk_aac \
        --enable-libkvazaar \
        \
        --enable-postproc \
        --enable-small \
        --enable-version3 \
        --extra-cflags="-I${PREFIX}/include" \
        --extra-ldflags="-L${PREFIX}/lib" \
        --extra-libs=-ldl \
        --prefix="${PREFIX}" && \
        make && \
        make install && \
        make distclean && \
        hash -r && \
        cd tools && \
        make qt-faststart && \
        cp qt-faststart ${PREFIX}/bin

RUN \
        ldd ${PREFIX}/bin/ffmpeg | grep opt/ffmpeg | cut -d ' ' -f 3 | xargs -i cp {} /usr/local/lib64/ && \
        cp ${PREFIX}/bin/* /usr/local/bin/ && \
        cp -r ${PREFIX}/share/ffmpeg /usr/local/share/ && \
        LD_LIBRARY_PATH=/usr/local/lib64 ffmpeg -buildconf

FROM        base
MAINTAINER  Julien Rottenberg <julien@rottenberg.info>

CMD         ["--help"]
ENTRYPOINT  ["ffmpeg"]

ENV LD_LIBRARY_PATH=/usr/local/lib64

COPY --from=build /usr/local/ /usr/local/

# Let's make sure the app built correctly
# Convenient to verify on https://hub.docker.com/r/jrottenberg/ffmpeg/builds/ console output


text:
FROM ubuntu:bionic

MAINTAINER Anastasios Zouzias <my_last_name@gmail.com>

ENV DEBIAN_FRONTEND noninteractive

WORKDIR /usr/include/

# We pass the boost version argument as argument
ARG BOOST_VERSION
ARG BOOST_VERSION_
ENV BOOST_VERSION=${BOOST_VERSION}
ENV BOOST_VERSION_=${BOOST_VERSION_}
ENV BOOST_ROOT=/usr/include/boost

RUN apt-get -qq update && apt-get install -q -y software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y
RUN apt-get -qq update && apt-get install -qy g++ gcc git wget libssl-dev build-essential

RUN wget --max-redirect 3 https://dl.bintray.com/boostorg/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_}.tar.gz
RUN mkdir -p /usr/include/boost && tar zxf boost_${BOOST_VERSION_}.tar.gz -C /usr/include/boost --strip-components=1

RUN echo ${BOOST_ROOT}
ENTRYPOINT /bin/bash

domain: dockerfile


text:
# AUTOGENERATED FILE
FROM balenalib/ccimx8x-sbc-pro-alpine:3.12-build

# Default to UTF-8 file.encoding
ENV LANG C.UTF-8

# add a simple script that can auto-detect the appropriate JAVA_HOME value
# based on whether the JDK or only the JRE is installed
RUN { \
		echo '#!/bin/sh'; \
		echo 'set -e'; \
		echo; \
		echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
	} > /usr/local/bin/docker-java-home \
	&& chmod +x /usr/local/bin/docker-java-home
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin

RUN set -x \
	&& apk add --no-cache \
		openjdk8 \
	&& [ "$JAVA_HOME" = "$(docker-java-home)" ]

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo $'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v8 \nOS: Alpine Linux 3.12 \nVariant: build variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nOpenJDK v8-jdk \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info


text:
# AUTOGENERATED FILE
FROM balenalib/isg-503-fedora:34-run

ENV NODE_VERSION 14.19.3
ENV YARN_VERSION 1.22.4

RUN for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
	done \
	&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-arm64.tar.gz" \
	&& echo "b972847ccd8a699b72f8ac455d4233fa584972e2ebd3dd99768ff5c95334304d  node-v$NODE_VERSION-linux-arm64.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-arm64.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-arm64.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo $'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v8 \nOS: Fedora 34 \nVariant: run variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v14.19.3, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info


text:
# MIT License
#
# Copyright (c) 2019-2020 Fabio Kruger and other contributors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

# FIXME(oleg_nenashev): This is not an official AdoptOpenJDK Docker Image.
# There is no official Alpine images at the moment.
# Needs upgrade when/if there is an official alpine image.
FROM adoptopenjdk/openjdk8:x86_64-alpine-jdk8u322-b06

ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
ARG JENKINS_AGENT_HOME=/home/${user}

ENV JENKINS_AGENT_HOME ${JENKINS_AGENT_HOME}

RUN mkdir -p "${JENKINS_AGENT_HOME}" \
    && addgroup -g "${gid}" "${group}" \
# Set the home directory (h), set user and group id (u, G), set the shell, don't ask for password (D)
    && adduser -h "${JENKINS_AGENT_HOME}" -u "${uid}" -G "${group}" -s /bin/bash -D "${user}" \
# Unblock user
    && passwd -u "${user}"

RUN apk update --no-cache \
    && apk add --no-cache \
        bash \
        openssh \
        git-lfs

# setup SSH server
RUN sed -i /etc/ssh/sshd_config \
        -e 's/#PermitRootLogin.*/PermitRootLogin no/' \
        -e 's/#PasswordAuthentication.*/PasswordAuthentication no/' \
        -e 's/#SyslogFacility.*/SyslogFacility AUTH/' \
        -e 's/#LogLevel.*/LogLevel INFO/' \
    && mkdir /var/run/sshd

VOLUME "${JENKINS_AGENT_HOME}" "/tmp" "/run" "/var/run"
WORKDIR "${JENKINS_AGENT_HOME}"

RUN echo "export PATH=${PATH}" >> /etc/profile
COPY setup-sshd /usr/local/bin/setup-sshd

EXPOSE 22

ENTRYPOINT ["setup-sshd"]

LABEL \
    org.opencontainers.image.vendor="Jenkins project" \
    org.opencontainers.image.title="Official Jenkins SSH Agent Docker image" \
    org.opencontainers.image.description="A Jenkins agent image which allows using SSH to establish the connection" \
    org.opencontainers.image.url="https://www.jenkins.io/" \
    org.opencontainers.image.source="https://github.com/jenkinsci/docker-ssh-agent" \
    org.opencontainers.image.licenses="MIT"


text:
# -- stage 1: build static routinator with musl libc for alpine
FROM alpine:3.11.6 as build

RUN apk add rust cargo

WORKDIR /tmp/routinator
COPY . .

RUN cargo build \
    --target x86_64-alpine-linux-musl \
    --release \
    --locked

# -- stage 2: create alpine-based container with the static routinator
#             executable
FROM alpine:3.11.6
COPY --from=build /tmp/routinator/target/x86_64-alpine-linux-musl/release/routinator /usr/local/bin/

# Build variables for uid and guid of user to run container
ARG RUN_USER=routinator
ARG RUN_USER_UID=1012
ARG RUN_USER_GID=1012

# Install rsync as routinator depends on it
RUN apk add --no-cache rsync libgcc

# Use Tini to ensure that Routinator responds to CTRL-C when run in the
# foreground without the Docker argument "--init" (which is actually another
# way of activating Tini, but cannot be enabled from inside the Docker image).
RUN apk add --no-cache tini
# Tini is now available at /sbin/tini

RUN addgroup -g ${RUN_USER_GID} ${RUN_USER} && \
    adduser -D -u ${RUN_USER_UID} -G ${RUN_USER} ${RUN_USER}

# Create the repository and TAL directories
RUN mkdir -p /home/${RUN_USER}/.rpki-cache/repository /home/${RUN_USER}/.rpki-cache/tals && \
    chown -R ${RUN_USER_UID}:${RUN_USER_GID} /usr/local/bin/routinator /home/${RUN_USER}/.rpki-cache

# Adding IPFS

#Install IPFS
WORKDIR /tmp/ipfs
RUN mkdir go-ipfs
COPY ./go-ipfs ./go-ipfs
RUN cd ./go-ipfs && ./install.sh
RUN apk add libc6-compat

# Expose ports
# Swarm TCP; should be exposed to the public
EXPOSE 4001
# Swarm UDP; should be exposed to the public
EXPOSE 4001/udp
# Daemon API; must not be exposed publicly but to client services under you control
EXPOSE 5001
# Web Gateway; can be exposed publicly with a proxy, e.g. as https://ipfs.example.org
EXPOSE 8080
# Swarm Websockets; must be exposed publicly when the node is listening using the websocket transport (/ipX/.../tcp/8081/ws).
EXPOSE 8081

# Create the fs-repo directory and switch to a non-privileged user.
ENV IPFS_PATH /data/ipfs
RUN mkdir -p $IPFS_PATH \
  && chown ${RUN_USER}:${RUN_USER_GID} $IPFS_PATH

# Create mount points for `ipfs mount` command
RUN mkdir /ipfs /ipns \
  && chown ${RUN_USER}:${RUN_USER_GID} /ipfs /ipns

# Expose the fs-repo as a volume.
# start_ipfs initializes an fs-repo if none is mounted.
# Important this happens after the USER directive so permissions are correct.
VOLUME $IPFS_PATH

# The default logging level
ENV IPFS_LOGGING ""

RUN echo $ENV_SWARM_KEY > $IPFS_PATH/swarm.key

RUN mkdir -p /usr/local/nexus \
    && chown ${RUN_USER}:${RUN_USER_GID} /usr/local/nexus

RUN touch /usr/local/nexus/peerid \
   && chown ${RUN_USER}:${RUN_USER_GID} /usr/local/nexus/peerid

RUN chmod 4755 /usr/local/nexus/peerid

EXPOSE 3323/tcp
EXPOSE 9556/tcp

COPY ./entrypoint.sh /opt/entrypoint.sh
RUN chmod +x /opt/entrypoint.sh
RUN chown ${RUN_USER_UID}:${RUN_USER_GID} /opt/entrypoint.sh

USER $RUN_USER_UID

#ENTRYPOINT ["/sbin/tini", "--", "routinator"]
ENTRYPOINT ["/sbin/tini", "--", "/opt/entrypoint.sh"]
# Execute the daemon subcommand by default
CMD ["server", "--rtr", "0.0.0.0:3323", "--http", "0.0.0.0:9556"]


text:
FROM alpine:3.12 AS builder
LABEL maintainer="k@ndk.name"

ARG BUILD_DEPENDENCIES="build-base \
    libffi-dev \
    libxml2-dev \
    mariadb-connector-c-dev \
    openldap-dev \
    python3-dev \
    xmlsec-dev \
    yarn"

ENV LC_ALL=en_US.UTF-8 \
    LANG=en_US.UTF-8 \
    LANGUAGE=en_US.UTF-8 \
    FLASK_APP=/build/powerdnsadmin/__init__.py

# Get dependencies
# py3-pip should not belong to BUILD_DEPENDENCIES. Otherwise, when we remove
# them with "apk del" at the end of build stage, the python requests module
# will be removed as well - (Tested with alpine:3.12 and python 3.8.5).
RUN apk add --no-cache ${BUILD_DEPENDENCIES} && \
    apk add --no-cache py3-pip

WORKDIR /build

# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /build/requirements.txt

# Get application dependencies
RUN pip install --upgrade pip && \
    pip install -r requirements.txt

# Add sources
COPY . /build

# Prepare assets
RUN yarn install --pure-lockfile --production && \
    yarn cache clean && \
    sed -i -r -e "s|'cssmin',\s?'cssrewrite'|'cssmin'|g" /build/powerdnsadmin/assets.py && \
    flask assets build

RUN mv /build/powerdnsadmin/static /tmp/static && \
    mkdir /build/powerdnsadmin/static && \
    cp -r /tmp/static/generated /build/powerdnsadmin/static && \
    cp -r /tmp/static/assets /build/powerdnsadmin/static && \
    cp -r /tmp/static/img /build/powerdnsadmin/static && \
    find /tmp/static/node_modules -name 'fonts' -exec cp -r {} /build/powerdnsadmin/static \; && \
    find /tmp/static/node_modules/icheck/skins/square -name '*.png' -exec cp {} /build/powerdnsadmin/static/generated \;

RUN { \
      echo "from flask_assets import Environment"; \
      echo "assets = Environment()"; \
      echo "assets.register('js_login', 'generated/login.js')"; \
      echo "assets.register('js_validation', 'generated/validation.js')"; \
      echo "assets.register('css_login', 'generated/login.css')"; \
      echo "assets.register('js_main', 'generated/main.js')"; \
      echo "assets.register('css_main', 'generated/main.css')"; \
    } > /build/powerdnsadmin/assets.py

# Move application
RUN mkdir -p /app && \
    cp -r /build/migrations/ /build/powerdnsadmin/ /build/run.py /app && \
    mkdir -p /app/configs && \
    cp -r /build/configs/docker_config.py /app/configs

# Cleanup
RUN pip install pip-autoremove && \
    pip-autoremove cssmin -y && \
    pip-autoremove jsmin -y && \
    pip-autoremove pytest -y && \
    pip uninstall -y pip-autoremove && \
    apk del ${BUILD_DEPENDENCIES}

# Build image
FROM alpine:3.12

ENV FLASK_APP=/app/powerdnsadmin/__init__.py \
    USER=pda

RUN apk add --no-cache mariadb-connector-c postgresql-client py3-gunicorn py3-psycopg2 xmlsec tzdata libcap && \
    addgroup -S ${USER} && \
    adduser -S -D -G ${USER} ${USER} && \
    mkdir /data && \
    chown ${USER}:${USER} /data && \
    setcap cap_net_bind_service=+ep $(readlink -f /usr/bin/python3) && \
    apk del libcap

COPY --from=builder /usr/bin/flask /usr/bin/
COPY --from=builder /usr/lib/python3.8/site-packages /usr/lib/python3.8/site-packages/
COPY --from=builder --chown=root:${USER} /app /app/
COPY ./docker/entrypoint.sh /usr/bin/

WORKDIR /app
RUN chown ${USER}:${USER} ./configs /app && \
    cat ./powerdnsadmin/default_config.py ./configs/docker_config.py > ./powerdnsadmin/docker_config.py

EXPOSE 80/tcp
USER ${USER}
HEALTHCHECK CMD ["wget","--output-document=-","--quiet","--tries=1","http://127.0.0.1/"]
ENTRYPOINT ["entrypoint.sh"]
CMD ["gunicorn","powerdnsadmin:create_app()"]


text:
FROM nvidia/cuda:10.1-devel-ubuntu16.04

LABEL maintainer="pughdr <david.pugh@kaust.edu.sa>"

SHELL [ "/bin/bash", "--login", "-c" ]

RUN apt-get update --fix-missing && \
    apt-get install -y wget bzip2 curl git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Create a non-root user
ARG username=al-khawarizmi
ARG uid=1000
ARG gid=100
ENV USER $username
ENV UID $uid
ENV GID $gid
ENV HOME /home/$USER

RUN adduser --disabled-password \
    --gecos "Non-root user" \
    --uid $UID \
    --gid $GID \
    --home $HOME \
    $USER

COPY environment.yml requirements.txt /tmp/
RUN chown $UID:$GID /tmp/environment.yml /tmp/requirements.txt

COPY postBuild docker/entrypoint.sh /usr/local/bin/
RUN chown $UID:$GID /usr/local/bin/postBuild /usr/local/bin/entrypoint.sh && \
    chmod u+x /usr/local/bin/postBuild /usr/local/bin/entrypoint.sh

USER $USER

# install miniconda
ENV MINICONDA_VERSION 4.8.2
ENV CONDA_DIR $HOME/miniconda3
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-$MINICONDA_VERSION-Linux-x86_64.sh -O ~/miniconda.sh && \
    chmod +x ~/miniconda.sh && \
    ~/miniconda.sh -b -p $CONDA_DIR && \
    rm ~/miniconda.sh

# make non-activate conda commands available
ENV PATH=$CONDA_DIR/bin:$PATH

# make conda activate command available from /bin/bash --login shells
RUN echo ". $CONDA_DIR/etc/profile.d/conda.sh" >> ~/.profile

# make conda activate command available from /bin/bash --interative shells
RUN conda init bash

# create a project directory inside user home
ENV PROJECT_DIR $HOME/app
RUN mkdir $PROJECT_DIR
WORKDIR $PROJECT_DIR

# build the conda environment
ENV ENV_PREFIX $PROJECT_DIR/env
ENV HOROVOD_CUDA_HOME $CUDA_HOME
ENV HOROVOD_NCCL_HOME $ENV_PREFIX
ENV HOROVOD_GPU_ALLREDUCE NCCL
ENV HOROVOD_GPU_BROADCAST NCCL
RUN conda update --name base --channel defaults conda && \
    conda env create --prefix $ENV_PREFIX --file /tmp/environment.yml --force && \
    conda activate $ENV_PREFIX && \
    . /usr/local/bin/postBuild && \
    conda clean --all --yes

# use an entrypoint script to insure conda environment is properly activated at runtime
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]

# default command will be to launch JupyterLab server for development
CMD [ "jupyter", "lab", "--no-browser", "--ip", "0.0.0.0" ]


text:
ARG         ALPINE_VERSION=${ALPINE_VERSION:-3.9}
FROM        alpine:${ALPINE_VERSION}

LABEL       maintainer="https://github.com/Hermsi1337"

ARG         STUNNEL_VERSION=${STUNNEL_VERSION:-5.48-r0}
ARG         LIBRESSL_VERSION=${LIBRESSL_VERSION:-2.7.5-r0}
ENV         ACCEPT_PORT=80 \
            SERVICE=httpsconnect \
            DESTINATION_PORT=443 \
            DESTINATION_IP=0.0.0.0 \
            CLIENT=yes \
            STUNNEL_VERSION=${STUNNEL_VERSION}

COPY        docker-entrypoint.sh /

RUN         apk add --no-cache stunnel=${STUNNEL_VERSION} libressl==${LIBRESSL_VERSION}

ENTRYPOINT ["/docker-entrypoint.sh"]


text:
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.155.1/containers/python-3/.devcontainer/base.Dockerfile

# [Choice] Python version: 3, 3.9, 3.8, 3.7, 3.6
ARG VARIANT="3.8"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

# [Option] Install Node.js
ARG INSTALL_NODE="false"
ARG NODE_VERSION="lts/*"
RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi

# [Optional] Uncomment this section to install additional OS packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends graphviz
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
    && apt-get -y install --no-install-recommends libgraphviz-dev

# [Optional] If your pip requirements rarely change, uncomment this section to add them to the image.
COPY requirements.txt requirements-test.txt /tmp/pip-tmp/
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements-test.txt
RUN rm -rf /tmp/pip-tmp

# [Optional] Uncomment this line to install global node packages.
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1


text:
FROM mcr.microsoft.com/dotnet/sdk:6.0.100 AS build-env
WORKDIR /app

COPY . ./
#We have to build separedly to workaround https://github.com/aspnet/LibraryManager/issues/643
RUN dotnet build src/JoinRpg.WebComponents --configuration Release --output out
RUN dotnet publish src/JoinRpg.Portal --configuration Release --output out

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0.1
WORKDIR /app
COPY --from=build-env /app/out .

#We need this to ClosedXML to work
RUN apt-get update && apt-get install -y apt-utils libgdiplus libc6-dev
ENTRYPOINT ["dotnet", "JoinRpg.Portal.dll"]

EXPOSE 80/tcp
EXPOSE 443/tcp


text:
ARG BUILDER_IMAGE="hexpm/elixir:1.13.3-erlang-24.1.7-debian-bullseye-20210902-slim"
ARG RUNNER_IMAGE="debian:bullseye-20210902-slim"

FROM ${BUILDER_IMAGE} as builder

# install build dependencies
RUN apt-get update -y && \
  apt-get install -y build-essential git cmake && \
  apt-get clean && \
  rm -f /var/lib/apt/lists/*_*

# prepare build dir
WORKDIR /app

# install hex + rebar
RUN mix local.hex --force && \
  mix local.rebar --force

# set build ENV
ENV MIX_ENV="prod"

# install mix dependencies
COPY mix.exs mix.lock ./

RUN mix deps.get --only $MIX_ENV
RUN mkdir config

# copy compile-time config files before we compile dependencies
# to ensure any relevant config change will trigger the dependencies
# to be re-compiled.
COPY config/config.exs config/${MIX_ENV}.exs config/
RUN mix deps.compile

COPY priv priv

# compile the release
COPY lib lib

RUN mix compile

# changes to config/runtime.exs don't require recompiling the code
COPY config/runtime.exs config/

COPY rel rel
RUN mix release

# start a new build stage so that the final image will only contain
# the compiled release and other runtime necessities
FROM ${RUNNER_IMAGE}

RUN apt-get update -y && \
  apt-get install -y libstdc++6 openssl libncurses5 locales && \
  apt-get clean && \
  rm -f /var/lib/apt/lists/*_*

# set the locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

WORKDIR "/app"

RUN chown nobody /app

# only copy the final release from the build stage
COPY --from=builder --chown=nobody:root /app/_build/prod/rel/fogex ./

USER nobody

CMD ["/app/bin/server"]


text:
FROM laofeng/bigdata-base:7.18.376
MAINTAINER laofeng <387753061@qq.com>
LABEL author="laofeng" email="387753061@qq.com"
LABEL version="0.1"

ENV JAVA_HOME /usr/lib/jvm/java
ENV SPARK_VERSION 2.4.6
ENV HADOOP_VERSION 2.7
ENV PYTHON_VERSION 3.7.6
ENV SPARK_MASTER_LOG /opt/spark/logs

#RUN rm -f /usr/bin/python
RUN rm -f /usr/bin/python3 \
    && ln -s /usr/local/lib/python-${PYTHON_VERSION}/bin/python3 /usr/bin/python3
#RUN ln -s /usr/local/lib/python-${PYTHON_VERSION}/bin/python3 /usr/bin/python

#openjdk version "1.8.0_252
#下载spark,解压，删除压缩包，移动到/opt/spark
RUN cd /root \
    && wget https://mirrors.aliyun.com/apache/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
    && tar zxf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz -C /opt \
    && rm -f spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \
    && mv /opt/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION} /opt/spark \
	&& mkdir -p ${SPARK_MASTER_LOG}

ENV PATH /opt/spark/bin:$PATH
ENV PATH /opt/spark/sbin:$PATH
ENV SPARK_HOME /opt/spark

ENV SPARK_MASTER_PORT 7077
ENV SPARK_MASTER_WEBUI_PORT 8080

ENV SPARK_WORKER_WEBUI_PORT 8081
ENV SPARK_WORKER_LOG /opt/spark/logs
ENV SPARK_MASTER "spark://spark-master:7077"

#修改python -> python3
#RUN rm -f /usr/bin/python
#RUN ln -s /usr/local/lib/python-${PYTHON_VERSION}/bin/python3 /usr/bin/python

ENV PYSPARK_PYTHON /usr/bin/python3
ENV PYSPARK_DRIVER_PYTHON /usr/bin/python3

# Configure container
COPY start-master.sh /
COPY start-worker.sh /
COPY log4j.properties /opt/spark/logs

#ENTRYPOINT ["/bin/bash"]
#EXPOSE 7077 8080
#CMD ["/start-master.sh"]


text:
ARG ALPINE_VERSION=3.14

FROM alpine:${ALPINE_VERSION}

LABEL maintainer="Oleamedia <info@oleamedia.com>"

ARG NGINX_RTMP_VERSION=1.2.1
ARG REPO=dl-cdn
ARG UID=101
ARG GID=101

ENV TZ=America/New_York

RUN set -x && \
  addgroup -g ${GID} -S nginx && adduser -u ${UID} -D -S -h /var/cache/nginx -s /sbin/nologin -G nginx nginx && \
  sed -i "s/dl-cdn.alpinelinux.org/${REPO}.alpinelinux.org/g" /etc/apk/repositories && \
  RUN_DEPS=" \
      bash \
      tzdata \
      ca-certificates \
      yasm \
      libaio \
      ffmpeg \
      libaio-dev \
      rtmpdump-dev \
      musl-dev \
      lame-dev \
      libtheora-dev \
      libvorbis-dev \
      libvpx-dev \
      freetype-dev \
      x264-dev \
      x265-dev \
  " && \
  \
  apk add --no-cache --virtual $RUN_DEPS && \
  apk add --no-cache --virtual .build-deps \
      git \
      curl \
      tzdata \
      samurai \
      libstdc++ \
      build-base \
      linux-headers \
      go \
      gcc \
      make \
      cmake \
      gnupg1 \
      geoip \
      #libuuid \
      openssl-dev \
      pcre-dev \
      zlib-dev \
      perl-dev \
      libc-dev \
      libunwind-dev \
      libxslt-dev \
      gd-dev \
      geoip-dev \
      perl-dev && \
  \
  CONFIG="\
      --prefix=/etc/nginx \
      --sbin-path=/usr/sbin/nginx \
      --modules-path=/usr/lib/nginx/modules \
      --conf-path=/etc/nginx/nginx.conf \
      --error-log-path=/var/log/nginx/error.log \
      --http-log-path=/var/log/nginx/access.log \
      --pid-path=/var/run/nginx.pid \
      --lock-path=/var/run/nginx.lock \
      --http-client-body-temp-path=/var/cache/nginx/client_temp \
      --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
      --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
      --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
      --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
      --user=nginx \
      --group=nginx \
      --with-http_ssl_module \
      --with-http_realip_module \
      --with-http_addition_module \
      --with-http_sub_module \
      --with-http_dav_module \
      --with-http_flv_module \
      --with-http_mp4_module \
      --with-http_gunzip_module \
      --with-http_gzip_static_module \
      --with-http_random_index_module \
      --with-http_secure_link_module \
      --with-http_stub_status_module \
      --with-http_auth_request_module \
      --with-http_xslt_module \
      --with-http_image_filter_module \
      --with-http_geoip_module \
      --with-threads \
      --with-stream \
      --with-stream_ssl_module \
      --with-stream_ssl_preread_module \
      --with-stream_realip_module \
      --with-stream_geoip_module \
      --with-http_slice_module \
      --with-mail \
      --with-mail_ssl_module \
      --with-compat \
      --with-file-aio \
      --with-http_v2_module \
      --with-http_v3_module \
      --with-http_quic_module \
      --with-stream_quic_module \
      --add-module=nginx-rtmp \
      --add-module=ngx_brotli \
      --add-module=njs/nginx \
      --add-module=headers-more-nginx-module \
      --add-module=nginx_cookie_flag_module \
  " && \
  \
  ln -snf /user/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone && \
  cd /tmp && \
  wget -c https://hg.nginx.org/nginx-quic/archive/quic.tar.gz -O - | tar -xz && \
  mv nginx* nginx && \
  cd nginx && \
  git clone --depth=1 -b master https://github.com/google/boringssl boringssl && \
  cd boringssl && \
  mkdir build && \
  cd build && \
  cmake -GNinja .. && \
  ninja && \
  cd /tmp/nginx && \
  git clone https://github.com/google/ngx_brotli --depth=1 && \
  cd ngx_brotli && git submodule update --init && \
  export NGX_BROTLI_STATIC_MODULE_ONLY=1 && \
  cd /tmp/nginx && \
  mkdir /usr/local/share/GeoIP/ && \
  wget -c https://raw.githubusercontent.com/openbridge/nginx/master/geoip/GeoLiteCity.dat.gz -O - | gzip -d > /usr/local/share/GeoIP/GeoLiteCity.dat && \
  wget -c https://raw.githubusercontent.com/openbridge/nginx/master/geoip/GeoIP.dat.gz -O - | gzip -d > /usr/local/share/GeoIP/GeoIP.dat && \
  chown -R nginx: /usr/local/share/GeoIP/ && \
  wget -c https://github.com/arut/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}.tar.gz -O - | tar -xz && \
  mv nginx-rtmp* nginx-rtmp && \
  git clone https://github.com/nginx/njs --depth=1 && \
  git clone https://github.com/openresty/headers-more-nginx-module --depth=1 && \
  git clone https://github.com/AirisX/nginx_cookie_flag_module --depth=1 && \
  \
  ./auto/configure $CONFIG \
      --with-cc-opt="-I boringssl/include -Wimplicit-fallthrough=0" \
      --with-ld-opt="-L boringssl/build/ssl  -L boringssl/build/crypto" && \
  make -j$(getconf _NPROCESSORS_ONLN) && \
  make install && \
  rm -rf /etc/nginx/html/index.html && \
  mkdir /etc/nginx/conf.d/ && \
  mkdir /etc/nginx/sites-available/ && \
  mkdir /etc/nginx/sites-enabled/ && \
  git clone https://github.com/nbs-system/naxsi --depth=1 && \
  cd naxsi && \
  mv naxsi_config/naxsi_core.rules /etc/nginx/naxsi_core.rules && \
  ln -s /usr/lib/nginx/modules /etc/nginx/modules && \
  strip /usr/sbin/nginx* && \
  apk add --no-cache --virtual .gettext gettext && \
  mv /usr/bin/envsubst /tmp/ && \
  \
  runDeps="$( \
  scanelf --needed --nobanner --format '%n#p' /usr/sbin/nginx /usr/lib/nginx/modules/*.so /tmp/envsubst \
  | tr ',' '\n' \
  | sort -u \
  | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
  )" && \
  mv /tmp/envsubst /usr/local/bin/ && \
  apk add --no-cache --virtual .nginx-rundeps $runDeps && \
  ln -sf /dev/stdout /var/log/nginx/access.log && \
  ln -sf /dev/stderr /var/log/nginx/error.log && \
  apk del --no-network .build-deps && \
  apk del --no-network .gettext && \
  rm -rf /tmp/*

# Copy config files.
COPY nginx.conf /etc/nginx/
COPY conf.d/* /etc/nginx/conf.d/
RUN  chown -R nginx:nginx /etc/nginx/

EXPOSE 80
EXPOSE 443
EXPOSE 1935
EXPOSE 8080

STOPSIGNAL SIGTERM

CMD ["nginx", "-g", "daemon off;"]


text:
#-------------------------------------------------------------------------------------------------------------
# Based on a template by  Microsoft Corporation.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
# adapted by Thomas Gölles
#-------------------------------------------------------------------------------------------------------------

FROM continuumio/miniconda3:4.10.3

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive

# This Dockerfile adds a non-root 'vscode' user with sudo access. However, for Linux,
# this user's GID/UID must match your local user UID/GID to avoid permission issues
# with bind mounts. Update USER_UID / USER_GID if yours is not 1000. See
# https://aka.ms/vscode-remote/containers/non-root-user for details.
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=$USER_UID

COPY .bashrc /root/.bashrc

# Configure apt and install packages
RUN apt-get update \
    && apt-get -y install --no-install-recommends apt-utils dialog 2>&1 \
    && apt-get -y install locales build-essential git iproute2 procps iproute2 lsb-release nano less jed \
    #
    # Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user.
    && groupadd --gid $USER_GID $USERNAME \
    && useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \
    && apt-get install -y sudo \
    && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME\
    && chmod 0440 /etc/sudoers.d/$USERNAME \
    # JVM
    && mkdir -p /usr/share/man/man1 \
    && apt-get -y install default-jre-headless \
    #
    # to download data
    && apt-get -y install netcat curl make wget \
    #
    # plotly orca
    && apt-get install -y xvfb \
    && apt-get install -y libgtk2.0-0 \
    && apt-get install -y libasound2 \
    && apt-get install -y libxrender1 libxtst6 libxi6 libxss1 libgconf-2-4 libnss3-dev \
    # handy tools
    && apt-get -y install imagemagick imagemagick-doc \
    && apt-get -y install libreoffice --no-install-recommends \
    && apt-get -y install hunspell man bash-completion \
    && apt-get -y install libreoffice-java-common \
    #
    # Clean up
    && apt-get autoremove -y \
    && apt-get clean -y \
    && rm -rf /var/lib/apt/lists/*

RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
    locale-gen
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

# install conda environment from file
ARG PYTHON_VERSION
ENV PYTHON_VERSION=${PYTHON_VERSION}

COPY environment$PYTHON_VERSION.yml /tmp/conda-tmp/
RUN /opt/conda/bin/conda env update -n base -f /tmp/conda-tmp/environment$PYTHON_VERSION.yml

RUN alias orca="xvfb-run orca"

# allow to conver pdf with imagmagick
RUN sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xml

# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=""

# install the kernel to use with jupyter and some extensions
RUN /bin/bash -c  'source activate base && \
    python -m ipykernel install --name base'

# prepend conda environment to path
ENV PATH $CONDA_DIR/envs/${conda_env}/bin:$PATH

SHELL ["conda", "run", "-n", "base", "/bin/bash", "-c"]
ENTRYPOINT ["/bin/bash"]


text:
#
# AET Docker
#
# Copyright (C) 2018 Maciej Laskowski
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

FROM openjdk:8-alpine
LABEL maintainer="Maciej Laskowski <skejven@gmail.com>"

# Set the build params
ARG BMP_VERSION="2.1.4"
ARG BMP_DOWNLOAD_SHA256="27c4080411adff919586e909c664c73bebb8ba8bfcaea259ce58327222e5e8fb"
ARG DOWNLOAD_URL="https://github.com/lightbody/browsermob-proxy/releases/download/browsermob-proxy-${BMP_VERSION}/browsermob-proxy-${BMP_VERSION}-bin.zip"

# make sure system is up-to-date
RUN apk update \
    && apk add ca-certificates curl unzip tzdata \
    && update-ca-certificates

# download and install BMP
RUN curl -fSL -o /tmp/browsermob-proxy.zip ${DOWNLOAD_URL} \
    && echo "${BMP_DOWNLOAD_SHA256}  /tmp/browsermob-proxy.zip" |  sha256sum -c - \
    && unzip /tmp/browsermob-proxy.zip -d / \
    && mv /browsermob-proxy-${BMP_VERSION} /browsermob-proxy \
    && rm -f /tmp/browsermob-proxy.zip \
    && rm -rf /var/cache/apk/*

ENV BMP_PORT="8080" \
    BMP_ADDRESS="0.0.0.0" \
    BMP_PROXY_PORT_RANGE="8281-8681" \
    BMP_PROXY_TTL="0"

CMD /browsermob-proxy/bin/browsermob-proxy -address ${BMP_ADDRESS} -port ${BMP_PORT} -proxyPortRange ${BMP_PROXY_PORT_RANGE} -ttl ${BMP_PROXY_TTL}


text:
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.

FROM jupyter/minimal-notebook:fa77fe99579b

# Do the pip installs as the unprivileged notebook user
USER jovyan

RUN pip install --upgrade pip && \
    pip install ipywidgets==7.0 && \
    pip install "git+https://github.com/jupyter/kernel_gateway_demos.git#egg=nb2kg&subdirectory=nb2kg" && \
    start.sh jupyter serverextension enable --py nb2kg --sys-prefix && \
    start.sh jupyter nbextension enable --py widgetsnbextension --sys-prefix

ADD run_script.sh /home/jovyan/run_script.sh

WORKDIR "/home/jovyan"

CMD [ "/bin/bash", "run_script.sh" ]


text:
FROM java:8-jre

# grab gosu for easy step-down from root
ENV GOSU_VERSION 1.7
RUN set -x \
	&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \
	&& wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc" \
	&& export GNUPGHOME="$(mktemp -d)" \
	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
	&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
	&& rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \
	&& chmod +x /usr/local/bin/gosu \
	&& gosu nobody true

# https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
# https://packages.elasticsearch.org/GPG-KEY-elasticsearch
RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4

ENV ELASTICSEARCH_VERSION 2.0.2
ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/2.x/debian

RUN echo "deb $ELASTICSEARCH_REPO_BASE stable main" > /etc/apt/sources.list.d/elasticsearch.list

RUN set -x \
	&& apt-get update \
	&& apt-get install -y --no-install-recommends elasticsearch=$ELASTICSEARCH_VERSION \
	&& rm -rf /var/lib/apt/lists/*

ENV PATH /usr/share/elasticsearch/bin:$PATH

WORKDIR /usr/share/elasticsearch

RUN set -ex \
	&& for path in \
		./data \
		./logs \
		./config \
		./config/scripts \
	; do \
		mkdir -p "$path"; \
		chown -R elasticsearch:elasticsearch "$path"; \
	done

COPY config ./config

VOLUME /usr/share/elasticsearch/data

COPY docker-entrypoint.sh /

EXPOSE 9200 9300
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["elasticsearch"]


text:
# AUTOGENERATED FILE
FROM balenalib/n510-tx2-fedora:35-build

ENV NODE_VERSION 16.15.1
ENV YARN_VERSION 1.22.4

RUN for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
	done \
	&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-arm64.tar.gz" \
	&& echo "84db3f261a02c3d92558fb80a3b597b58175d713b8aa928f6b66e963340f1faf  node-v$NODE_VERSION-linux-arm64.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-arm64.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-arm64.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo $'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v8 \nOS: Fedora 35 \nVariant: build variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v16.15.1, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info


text:
# AUTOGENERATED FILE
FROM balenalib/jetson-nano-emmc-alpine:3.14-build

RUN apk add --no-cache \
        ca-certificates \
        \
        # .NET Core dependencies
        krb5-libs \
        libgcc \
        libintl \
        libssl1.1 \
        libstdc++ \
        icu-libs \
        zlib

ENV \
    # Configure web servers to bind to port 80 when present
    ASPNETCORE_URLS=http://+:80 \
    # Enable detection of running in a container
    DOTNET_RUNNING_IN_CONTAINER=true

# Install .NET Core
ENV DOTNET_VERSION 6.0.0

RUN curl -SL --output dotnet.tar.gz "https://dotnetcli.blob.core.windows.net/dotnet/Runtime/$DOTNET_VERSION/dotnet-runtime-$DOTNET_VERSION-linux-musl-arm64.tar.gz" \
    && dotnet_sha512='e5555d81b06f4617569cbe183150f03e483da7b0d2d7da7da4fcaa80decd1ae2369efc4122eb3c6e59a0631c6a51559d8458a022680074f2548df534685ff2cb' \
    && echo "$dotnet_sha512  dotnet.tar.gz" | sha512sum -c - \
    && mkdir -p /usr/share/dotnet \
    && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \
    && rm dotnet.tar.gz \
    && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/44e597e40f2010cdde15b3ba1e397aea3a5c5271/scripts/assets/tests/test-stack@dotnet.sh" \
  && echo "Running test-stack@dotnet" \
  && chmod +x test-stack@dotnet.sh \
  && bash test-stack@dotnet.sh \
  && rm -rf test-stack@dotnet.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo 'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v8 \nOS: Alpine Linux 3.14 \nVariant: build variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \ndotnet 6.0-runtime \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info

RUN echo '#!/bin/sh.real\nbalena-info\nrm -f /bin/sh\ncp /bin/sh.real /bin/sh\n/bin/sh "$@"' > /bin/sh-shim \
	&& chmod +x /bin/sh-shim \
	&& cp /bin/sh /bin/sh.real \
	&& mv /bin/sh-shim /bin/sh


text:
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
ARG tag_version=latest
FROM sdap/solr:${tag_version}
MAINTAINER Apache SDAP "dev@sdap.apache.org"

ENV SDAP_ZK_SERVICE_HOST="localhost" \
    SDAP_ZK_SERVICE_PORT="2181" \
    SDAP_ZK_SOLR_CHROOT="solr" \
    SOLR_HOST="localhost"

COPY ./cloud/docker-entrypoint-initdb.d/* /docker-entrypoint-initdb.d/
COPY ./cloud/tmp/* /tmp/

# This will run docker-entrypoint.sh with the value of CMD as default arguments. However, if any arguments are supplied
# to the docker run command when launching this image, the command line arguments will override these CMD arguments
ENTRYPOINT ["/bin/bash", "-c", "docker-entrypoint.sh $(eval echo $@)", "$@"]
CMD ["solr-foreground", "-c", "-z ${SDAP_ZK_SERVICE_HOST}:${SDAP_ZK_SERVICE_PORT}/${SDAP_ZK_SOLR_CHROOT}"]


text:
FROM docker.adeo.no:5000/fpsak:latest
RUN mkdir -p /var/run/secrets/naisd.io/
COPY . .
RUN chmod +x getmqclients.sh && ./getmqclients.sh
RUN mv okonomi.jar /app/lib
RUN mv sakogbehandling-klient.jar /app/lib
RUN mv felles-integrasjon-jms.jar /app/lib
COPY logback.xml /app/lib
COPY keystore/nav_truststore_path /var/run/secrets/naisd.io/nav_truststore_path
# kan legges inn via volumes?

ENV ABAC_PDP_ENDPOINT_DESCRIPTION="The XACML JSON Endpoint for evaluating attributes against policies"\
    ABAC_PDP_ENDPOINT_URL=https://fpmock2:8063/asm-pdp/authorize\
    AKTOER_V2_SECURITYTOKEN=SAML\
    AKTOER_V2_URL=https://fpmock2:8063/aktoerregister/ws/Aktoer/v2\
    APP_ENVIRONMENT=lokal\
    APP_NAME=fpsak\
    APP_VERSION=autotest\
    APPD_ENABLED=false\
    APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=5ed4d975-ed5b-40b2-8ac6-9e0c0e61a67e\
    APPDYNAMICS_AGENT_ACCOUNT_NAME=NON-PROD\
    APPDYNAMICS_CONTROLLER_HOST_NAME=appdynamics.adeo.no\
    APPDYNAMICS_CONTROLLER_PORT=443\
    APPDYNAMICS_CONTROLLER_SSL_ENABLED=true\
    ARBEIDSFORDELING_V1_URL=https://fpmock2:8063/norg2/ws/Arbeidsfordeling/v1\
    ARBEIDSFORHOLD_V3_URL=https://fpmock2:8063/aareg-core/ArbeidsforholdService/v3\
    AUTOTEST_ENV=pipeline\
    AUTOTEST_OAUTH2_ISSUER_PATH=/isso/oauth2\
    AUTOTEST_OAUTH2_ISSUER_PORT=8063\
    AUTOTEST_OAUTH2_ISSUER_SCHEME=http\
    AUTOTEST_OAUTH2_ISSUER_URL=fpmock2\
    BEHANDLEINNGAAENDEJOURNAL_V1_DESCRIPTION="Virksomhetstjeneste for oppdatering av inngående journalposter."\
    BEHANDLEINNGAAENDEJOURNAL_V1_SECURITYTOKEN=SAML\
    BEHANDLEINNGAAENDEJOURNAL_V1_URL=https://fpmock2:8063/services/behandleinngaaendejournal/v1\
    BEHANDLEJOURNAL_V3_URL=https://fpmock2:8063/services/behandlejournal/v3\
    BEHANDLEOPPGAVE_V1_URL=https://fpmock2:8063/nav-gsak-ws/BehandleOppgaveV1\
    BEHANDLESAK_V2_URL=https://fpmock2:8063/nav-gsak-ws/BehandleSakV2\
    DEFAULTDS_PASSWORD=fpsak\
    #DEFAULTDS_URL=jdbc:oracle:thin:@fpsak-oracle:1521/XE\
    DEFAULTDS_USERNAME=fpsak\
    DOKUMENTPRODUKSJON_V2_SECURITYTOKEN=SAML\
    DOKUMENTPRODUKSJON_V2_URL=https://fpmock2:8063/dokprod/ws/dokumentproduksjon/v2\
    DVHDS_PASSWORD=fpsak_hist\
    #DVHDS_URL=jdbc:oracle:thin:@fpsak-oracle:1521/XE\
    DVHDS_USERNAME=fpsak_hist\
    ENVIRONMENT_NAME=p\
    FASIT_ENVIRONMENT_NAME=test\
    FPSAK_CHANNEL_NAME=U87_FPSAK_SSL\
    FPSAK_CHANNEL_QUEUEMANAGER=mq://e26apvl121.test.local:1411/MUXLSC01\
    FPSAK_OKONOMI_OPPDRAG_MOTTAK_QUEUEMANAGER=mq://vtpmq:1414/QM1\
    FPSAK_OKONOMI_OPPDRAG_MOTTAK_QUEUENAME=VTP.OKONOMI.INN\
    FPSAK_OKONOMI_OPPDRAG_SEND_QUEUENAME=VTP.OKONOMI.UT\
    HENTINNTEKTLISTEBOLK_URL=https://fpmock2:8063/inntektskomponenten-ws/rs/api/v1/hentinntektlistebolk\
    INFOTRYGD_HENDELSER_API_URL=https://fpmock2:8063/infotrygd/hendelser\
    INFOTRYGDBEREGNINGSGRUNNLAG_V1_URL=https://fpmock2:8063/infotrygd-ws/InfotrygdBeregningsgrunnlag/v1\
    INFOTRYGDSAK_V1_URL=https://fpmock2:8063/infotrygd-ws/InfotrygdSak/v1\
    INNGAAENDEJOURNAL_V1_DESCRIPTION="Virksomhetstjeneste for henting av metadata om inngående journalposter."\
    INNGAAENDEJOURNAL_V1_SECURITYTOKEN=SAML\
    INNGAAENDEJOURNAL_V1_URL=https://fpmock2:8063/joark/InngaaendeJournal/v1\
    INNTEKT_V3_URL=https://fpmock2:8063/inntektskomponenten-ws/inntekt/v3/Inntekt\
    JOURNAL_V3_DESCRIPTION="Virksomhetstjeneste for henting av journalposter og dokumenter fra arkivet."\
    JOURNAL_V3_SECURITYTOKEN=SAML\
    JOURNAL_V3_URL=https://fpmock2:8063/joark/Journal/v3\
    KODEVERK_V2_URL=https://fpmock2:8063/kodeverk/ws/Kodeverk/v2\
    LDAP_AUTH=none\
    LDAP_BASEDN="dc=test,dc=local"\
    LDAP_DOMAIN=TEST.LOCAL\
    LDAP_PASSWORD=notrelevant\
    LDAP_SERVICEUSER_BASEDN="ou=ServiceAccounts,dc=test,dc=local"\
    LDAP_URL=ldaps://fpmock2:8636/\
    LDAP_USER_BASEDN="ou=NAV,ou=BusinessUnits,dc=test,dc=local"\
    LDAP_USERNAME=srvSSOLinux\
    LOADBALANCER_FPSAK_CONTEXTROOTS=fpsak\
    LOADBALANCER_FPSAK_POOLNAME=nais\
    LOADBALANCER_FQDN=fpmock2:8080\
    LOGBACK_CONFIG=/app/lib/logback.xml\
    MEDLEM_V2_URL=https://fpmock2:8063/medl2/ws/Medlemskap/v2\
    MELDEKORTUTBETALINGSGRUNNLAG_V1_URL=https://fpmock2:8063/ail_ws/MeldekortUtbetalingsgrunnlag_v1\
    MQGATEWAY02_CHANNEL=U87_FPSAK_SSL\
    MQGATEWAY02_HOSTNAME=e26apvl121.test.local\
    MQGATEWAY02_NAME=MUXLSC01\
    MQGATEWAY02_PORT=1411\
    MQGATEWAY02_USESSLONJETTY=true\
    NAV_TRUSTSTORE_KEYSTOREALIAS=na\
    NAV_TRUSTSTORE_PASSWORD=changeit\
    NAV_TRUSTSTORE_PATH=/var/run/secrets/naisd.io/nav_truststore_path\
    OIDC_OPENAM_AGENTNAME=fpsak-localhost\
    OIDC_OPENAM_HOSTURL=https://fpmock2:8063/isso/oauth2\
    OIDC_OPENAM_ISSUERURL=https://fpmock2:8063/isso/oauth2\
    OIDC_OPENAM_JWKSURL=https://fpmock2:8063/isso/oauth2/connect/jwk_uri\
    OIDC_OPENAM_PASSWORD=dummy\
    OIDC_STS_ISSUER=https://fpmock2:8063/sts/issuer\
    OIDC_STS_ISSUER_URL=https://fpmock2:8063/sts/issuer\
    OIDC_STS_JWKS=https://fpmock2:8063/sts/jwks\
    OIDC_STS_JWKS_URL=https://fpmock2:8063/sts/jwks\
    OPENIDCONNECT_ISSOHOST=https://fpmock2:8063/isso/oauth2\
    OPENIDCONNECT_ISSOISSUER=https://fpmock2:8063/isso/oauth2\
    OPENIDCONNECT_ISSOJWKS=https://fpmock2:8063/isso/oauth2/connect/jwk_uri\
    OPENIDCONNECT_USERNAME=fpsak-localhost\
    OPPGAVE_V3_URL=https://fpmock2:8063/nav-gsak-ws/OppgaveV3\
    ORGANISASJON_V4_URL=https://fpmock2:8063/ereg/ws/OrganisasjonService/v4\
    PERSON_V3_URL=https://fpmock2:8063/tpsws/ws/Person/v3\
    RAY_AVSTEM_DATA_QUEUENAME=DEV.QUEUE.1\
    SAK_V1_URL=https://fpmock2:8063/nav-gsak-ws/SakV1\
    SBEH_SAKSBEHANDLING_QUEUENAME=QA.U_SAKOGBEHANDLING.SAKSBEHANDLING\
    SECURITYTOKENSERVICE_URL=https://fpmock2:8063/SecurityTokenServiceProvider/\
    SIGRUNRESTBEREGNETSKATT_URL=https://fpmock2:8063\
    SYSTEMBRUKER_PASSWORD=not_relevant\
    SYSTEMBRUKER_USERNAME=vtp\
    TASK_MANAGER_POLLING_DELAY=4\
    TASK_MANAGER_POLLING_TASKS_SIZE=4\
    TASK_MANAGER_POLLING_WAIT=2\
    VIRKSOMHET_ARBEIDSFORDELING_V1_SECURITYTOKEN=SAML\
    VIRKSOMHET_ARBEIDSFORHOLD_V3_SECURITYTOKEN=SAML\
    VIRKSOMHET_BEHANDLEOPPGAVE_V1_SECURITYTOKEN=SAML\
    VIRKSOMHET_BEHANDLESAK_V2_SECURITYTOKEN=SAML\
    VIRKSOMHET_INFOTRYGDBEREGNINGSGRUNNLAG_V1_SECURITYTOKEN=SAML\
    VIRKSOMHET_INFOTRYGDSAK_V1_SECURITYTOKEN=SAML\
    VIRKSOMHET_INNTEKT_V3_SECURITYTOKEN=SAML\
    VIRKSOMHET_KODEVERK_V2_SECURITYTOKEN=NONE\
    VIRKSOMHET_MEDLEMSKAP_V2_SECURITYTOKEN=SAML\
    VIRKSOMHET_MELDEKORTUTBETALINGSGRUNNLAG_V1_SECURITYTOKEN=SAML\
    VIRKSOMHET_OPPGAVE_V3_SECURITYTOKEN=LTPA\
    VIRKSOMHET_ORGANISASJON_V4_SECURITYTOKEN=SAML\
    VIRKSOMHET_PERSON_V3_SECURITYTOKEN=SAML\
    VIRKSOMHET_SAK_V1_SECURITYTOKEN=SAML


text:
FROM openjdk:11-jre-slim as builder
WORKDIR application
ADD maven/${project.build.finalName}.jar ${project.build.finalName}.jar
RUN java -Djarmode=layertools -jar ${project.build.finalName}.jar extract

FROM openjdk:11-jre-slim

RUN apt update && apt install -y curl

HEALTHCHECK  --interval=5s --timeout=2s --start-period=10s --retries=5 \
    CMD curl -f localhost:8100/actuator/health || false

LABEL PROJECT_NAME=${project.artifactId} \
      PROJECT=${project.id}

EXPOSE 8100

WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "org.springframework.boot.loader.JarLauncher"]


text:
FROM ubuntu:16.04

# install miscellaneous
RUN apt-get update
RUN apt-get install -y build-essential vim git wget unzip tar clang
RUN apt-get install -y nasm libass-dev libmp3lame-dev dh-autoreconf

# copy setup scripts & exploits
WORKDIR /root
COPY ./CVE_2017_9992-setup.zip /root
RUN unzip CVE_2017_9992-setup.zip
RUN rm CVE_2017_9992-setup.zip

# prepare libs
WORKDIR /root/sources/ffmpeg_deps
RUN ./build_ffmpeg.sh

# prepare main project
WORKDIR /root/sources/ffmpeg
RUN ./project_config.sh

# compile tool
#   w/o ASAN : consider using this to check heap overflow
#              see bugchrom_1404 for of using UBSAN
WORKDIR /root/sources/ffmpeg/project
RUN make tools/target_dec_cavs_fuzzer

# go home
WORKDIR /root


text:
# AUTOGENERATED FILE
FROM balenalib/up-squared-alpine:3.12-run

ENV NODE_VERSION 10.22.0
ENV YARN_VERSION 1.22.4

# Install dependencies
RUN apk add --no-cache libgcc libstdc++ libuv \
	&& apk add --no-cache libssl1.0 || apk add --no-cache libssl1.1

RUN buildDeps='curl' \
	&& set -x \
	&& for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \
	done \
	&& apk add --no-cache $buildDeps \
	&& curl -SLO "http://resin-packages.s3.amazonaws.com/node/v$NODE_VERSION/node-v$NODE_VERSION-linux-alpine-amd64.tar.gz" \
	&& echo "19e6916df79781c440e4949bb8b3714c7f8a26ed34ec5cd6f32e6871205eb4d4  node-v$NODE_VERSION-linux-alpine-amd64.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-alpine-amd64.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-alpine-amd64.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo $'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: Intel 64-bit (x86-64) \nOS: Alpine Linux 3.12 \nVariant: run variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v10.22.0, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info

RUN echo $'#!/bin/bash\nbalena-info\nbusybox ln -sf /bin/busybox /bin/sh\n/bin/sh "$@"' > /bin/sh-shim \
	&& chmod +x /bin/sh-shim \
	&& ln -f /bin/sh /bin/sh.real \
	&& ln -f /bin/sh-shim /bin/sh


text:
# AUTOGENERATED FILE
FROM resin/zynq-xz702-alpine-buildpack-deps:edge

ENV NODE_VERSION 4.9.1
ENV YARN_VERSION 1.6.0

# Install dependencies
RUN apk add --no-cache libgcc libstdc++ libuv libcrypto1.0 libssl1.0

RUN for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \
	done \
	&& curl -SLO "http://resin-packages.s3.amazonaws.com/node/v$NODE_VERSION/node-v$NODE_VERSION-linux-alpine-armhf.tar.gz" \
	&& echo "d6329e0ee0ebe57afcc5e16439adebc1dddc17466482467f569fc517d573e707  node-v4.9.1-linux-alpine-armhf.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-alpine-armhf.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-alpine-armhf.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: http://docs.resin.io/deployment/dockerfile"]


text:
FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.2-sdk-stretch AS build
WORKDIR /src
COPY . .
RUN dotnet tool install --tool-path ".paket" paket
ENV PATH="/root/.dotnet/tools:${PATH}"

WORKDIR /src/src/Services/Identity/Identity.Api
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Identity.Api.dll"]


text:
################
# Planning Stage
################
FROM lukemathwalker/cargo-chef as planner
WORKDIR app
COPY . .
# Compute a lock-like file for our project
RUN cargo chef prepare  --recipe-path recipe.json

################
# Caching Stage
################
FROM lukemathwalker/cargo-chef as cacher
WORKDIR app
COPY --from=planner /app/recipe.json recipe.json
# Build our project dependencies, not our application!
RUN cargo chef cook --release --recipe-path recipe.json

################
# Building Stage
################
FROM rust:1.51 AS builder
WORKDIR app
COPY --from=cacher /app/target target
COPY --from=cacher $CARGO_HOME $CARGO_HOME
COPY . .
RUN cargo build --release

################
# Runtime Stage
################
FROM debian:buster-slim AS runtime
WORKDIR app
# System Dependencies (PostgreSQL Client)
RUN apt-get update -y \
    && apt-get install -y --no-install-recommends postgresql-client \
    # Clean up
    && apt-get autoremove -y \
    && apt-get clean -y \
    && rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/target/release/{{ artifact-id }} {{ artifact-id }}
COPY .support/docker/{{ artifact-id }} .
ENV LOG_FORMAT bunyan
ENV {{ ARTIFACT_ID}}_SERVER_PORT 8080
ENV {{ ARTIFACT_ID}}_MANAGEMENT_PORT 8081
ENTRYPOINT ["./{{ artifact-id }}"]


text:
FROM python:3.6

# Install general dependencies
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
      apt-utils build-essential git curl libssl-dev \
      libreadline-dev zlib1g-dev libffi-dev

# Install and setup en_US.UTF-8 locale
# This is necessary so that output from node/ruby/python
# won't break or have weird indecipherable characters
RUN apt-get update && \
  apt-get install --reinstall -y locales && \
  sed -i 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
  locale-gen en_US.UTF-8

ENV LANG en_US.UTF-8
ENV LANGUAGE en_US
ENV LC_ALL en_US.UTF-8

RUN dpkg-reconfigure --frontend noninteractive locales

# Install nvm and install versions 4 and 6
# TODO: Default to 6 LTS instead of 4
# Ref: https://github.com/18F/federalist/issues/1209
ENV NVM_DIR /usr/local/nvm
ENV NODE_DEFAULT_VERSION 4
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash \
  && . "$NVM_DIR/nvm.sh" \
  && nvm install $NODE_DEFAULT_VERSION \
  && nvm install 6 \
  && nvm use $NODE_DEFAULT_VERSION \
  && echo 'export OLD_PREFIX=$PREFIX && unset PREFIX' > $HOME/.profile \
  && echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> $HOME/.profile \
  && echo 'export PREFIX=$OLD_PREFIX && unset OLD_PREFIX' >> $HOME/.profile

# Install ruby via rvm
ENV RUBY_VERSION 2.3.1
RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RUN \curl -sSL https://get.rvm.io | bash -s stable
RUN /bin/bash -l -c 'rvm install $RUBY_VERSION && rvm use --default $RUBY_VERSION'
RUN echo rvm_silence_path_mismatch_check_flag=1 >> /etc/rvmrc

# skip installing gem documentation
RUN echo 'install: --no-document\nupdate: --no-document' >> "/etc/.gemrc"

WORKDIR /app

ADD requirements.txt ./

RUN pip install -r requirements.txt

ADD . ./

ARG is_testing
RUN if [ "$is_testing" ]; then pip install -r requirements-dev.txt; fi;

CMD ["bash", "./run.sh"]


text:
# AUTOGENERATED FILE
FROM balenalib/colibri-imx6dl-debian:bookworm-run

ENV NODE_VERSION 12.22.7
ENV YARN_VERSION 1.22.4

RUN buildDeps='curl libatomic1' \
	&& set -x \
	&& for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
	done \
	&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
	&& rm -rf /var/lib/apt/lists/* \
	&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& echo "53cd2eeb5fbd41fa43620f06fe6340794498d434ac03894e7b4fd1633108775b  node-v$NODE_VERSION-linux-armv7l.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-armv7l.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo 'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v7 \nOS: Debian Bookworm \nVariant: run variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v12.22.7, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info

RUN echo '#!/bin/sh.real\nbalena-info\nrm -f /bin/sh\ncp /bin/sh.real /bin/sh\n/bin/sh "$@"' > /bin/sh-shim \
	&& chmod +x /bin/sh-shim \
	&& cp /bin/sh /bin/sh.real \
	&& mv /bin/sh-shim /bin/sh


text:
# AUTOGENERATED FILE
FROM balenalib/asus-tinker-board-s-ubuntu:kinetic-run

ENV NODE_VERSION 16.15.1
ENV YARN_VERSION 1.22.4

RUN buildDeps='curl libatomic1' \
	&& set -x \
	&& for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
	done \
	&& apt-get update && apt-get install -y $buildDeps --no-install-recommends \
	&& rm -rf /var/lib/apt/lists/* \
	&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& echo "b868e7d757acca8a1df5394f2381365c006e491aac5e9979b4a933ca66698f8c  node-v$NODE_VERSION-linux-armv7l.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-armv7l.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo 'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v7 \nOS: Ubuntu kinetic \nVariant: run variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v16.15.1, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info


text:
FROM resin/raspberrypi3-debian:stretch
# The balena base image for building apps on Raspberry Pi 3.

RUN echo "BUILD MODULE: CameraCapture"

# Enforces cross-compilation through Quemu
RUN [ "cross-build-start" ]

RUN apt-get update && apt-get install -y python3-pip libboost-python-dev

# Update package index and install dependencies
# RUN install_packages \
#     build-essential \
#     libopenjp2-7-dev \
#     zlib1g-dev \
#     libatlas-base-dev \
#     wget \
#     libboost-python1.62.0 \
#     curl \
#     libcurl4-openssl-dev

# Required for OpenCV
# RUN install_packages \
#     # Hierarchical Data Format
#     libhdf5-dev libhdf5-serial-dev \
#     # for image files
#     libjpeg-dev libtiff5-dev libjasper-dev libpng-dev \
#     # for video files
#     libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
#     # for gui
#     libqt4-test libqtgui4 libqtwebkit4 libgtk2.0-dev \
#     # high def image processing
#     libilmbase-dev libopenexr-dev

# Install Python packages
COPY /build/arm32v7-requirements.txt ./
RUN pip3 install --upgrade pip
RUN pip3 install --upgrade setuptools
RUN pip3 install --index-url=https://www.piwheels.org/simple -r arm32v7-requirements.txt

# Cleanup
RUN rm -rf /var/lib/apt/lists/* \
    && apt-get -y autoremove

RUN [ "cross-build-end" ]

ADD /app/ .

# Expose the port
EXPOSE 5012

CMD [ "python3", "./MotionCapture.py" ]


text:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["src/Common/Competitions.Common/Competitions.Common.csproj", "src/Common/Competitions.Common/"]
COPY ["src/Data/Competitions.Data.Common/Competitions.Data.Common.csproj", "src/Data/Competitions.Data.Common/"]
COPY ["src/Data/Competitions.Data.Models/Competitions.Data.Models.csproj", "src/Data/Competitions.Data.Models/"]
COPY ["src/Data/Competitions.Data/Competitions.Data.csproj", "src/Data/Competitions.Data/"]
COPY ["src/Domain/Competitions.Domain.BL/Competitions.Domain.BL.csproj", "src/Domain/Competitions.Domain.BL/"]
COPY ["src/Domain/Competitions.Domain.BL/Competitions.Domain.Mapping.csproj", "src/Domain/Competitions.Domain.Mapping/"]
COPY ["src/Web/Competitions.Web.ViewModels/Competitions.Web.ViewModels.csproj", "src/Web/Competitions.Web.ViewModels/"]
COPY ["src/Web/Competitions.Web/Competitions.Web.csproj", "src/Web/Competitions.Web/"]
RUN dotnet restore "src/Web/Competitions.Web/Competitions.Web.csproj"
COPY . .
WORKDIR "/src/src/Web/Competitions.Web"
RUN dotnet build "Competitions.Web.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Competitions.Web.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Competitions.Web.dll"]


text:
# AUTOGENERATED FILE
FROM balenalib/colibri-imx6dl-ubuntu:bionic-run

# A few reasons for installing distribution-provided OpenJDK:
#
#  1. Oracle.  Licensing prevents us from redistributing the official JDK.
#
#  2. Compiling OpenJDK also requires the JDK to be installed, and it gets
#     really hairy.
#
#     For some sample build times, see Debian's buildd logs:
#       https://buildd.debian.org/status/logs.php?pkg=openjdk-7

# Default to UTF-8 file.encoding
ENV LANG C.UTF-8

# add a simple script that can auto-detect the appropriate JAVA_HOME value
# based on whether the JDK or only the JRE is installed
RUN { \
		echo '#!/bin/sh'; \
		echo 'set -e'; \
		echo; \
		echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
	} > /usr/local/bin/docker-java-home \
	&& chmod +x /usr/local/bin/docker-java-home

# do some fancy footwork to create a JAVA_HOME that's cross-architecture-safe
RUN ln -svT "/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture)" /docker-java-home
ENV JAVA_HOME /docker-java-home

RUN set -ex; \
	\
# deal with slim variants not having man page directories (which causes "update-alternatives" to fail)
	if [ ! -d /usr/share/man/man1 ]; then \
		mkdir -p /usr/share/man/man1; \
	fi; \
	\
	apt-get update; \
	apt-get install -y --no-install-recommends \
		software-properties-common \
	; \
	add-apt-repository ppa:openjdk-r/ppa; \
	apt-get update; \
	apt-get install -y --no-install-recommends \
		openjdk-8-jre \
	; \
	rm -rf /var/lib/apt/lists/*; \
	\
# verify that "docker-java-home" returns what we expect
	[ "$(readlink -f "$JAVA_HOME")" = "$(docker-java-home)" ]; \
	\
# update-alternatives so that future installs of other OpenJDK versions don't change /usr/bin/java
	update-alternatives --get-selections | awk -v home="$(readlink -f "$JAVA_HOME")" 'index($3, home) == 1 { $2 = "manual"; print | "update-alternatives --set-selections" }'; \
# ... and verify that it actually worked for one of the alternatives we care about
	update-alternatives --query java | grep -q 'Status: manual'

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo 'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v7 \nOS: Ubuntu bionic \nVariant: run variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nOpenJDK v8-jre \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info

RUN echo '#!/bin/sh.real\nbalena-info\nrm -f /bin/sh\ncp /bin/sh.real /bin/sh\n/bin/sh "$@"' > /bin/sh-shim \
	&& chmod +x /bin/sh-shim \
	&& cp /bin/sh /bin/sh.real \
	&& mv /bin/sh-shim /bin/sh


text:
FROM lburgazzoli/fedora-ui:26
MAINTAINER lburgazzoli

ARG APP_NAME
ARG APP_URL
ARG DOCKER_USER
ARG DOCKER_USER_GID
ARG DOCKER_USER_UID

ENV DOCKER_USER_HOME /home/$DOCKER_USER
ENV HOME             $DOCKER_USER_HOME

RUN \
    dnf --assumeyes install \
        libXScrnSaver \
        libXtst \
        libxkbfile \
        GConf2 \
        alsa-lib \
        alsa-utils \
        make \
        automake \
        gcc \
        gcc-c++ \
        git-core \
        git \
        gnupg \
        gnupg2 \
        findutils \
    && ln -s /usr/share/git-core/contrib/completion/git-prompt.sh /etc/profile.d \
    && mkdir /opt/${APP_NAME} \
    && curl -L ${APP_URL} \
        | tar -xzf - \
            --directory /opt/${APP_NAME} \
            --strip-components=1

ADD atom-run.sh /opt/atom/atom-run.sh
RUN chmod ugo+x /opt/atom/atom-run.sh

WORKDIR $DOCKER_USER_HOME
USER $DOCKER_USER

ENTRYPOINT [ "/opt/atom/atom-run.sh" ]


text:
#base on blog post: https://medium.com/@tiangolo/react-in-docker-with-nginx-built-with-multi-stage-docker-builds-including-testing-8cc49d6ec305

# docker build -t gcr.io/cloud-native-madison/auth-chat-ui:v1-0 .

# Stage 0, "build-stage"
FROM node:current-slim as build-stage

WORKDIR /app

COPY package*.json /app/

RUN npm install

COPY ./ /app/

RUN npm run-script build

# Stage 1, "package-stage"

FROM nginx:stable-alpine

COPY --from=build-stage /app/build/ /usr/share/nginx/html

COPY nginx.conf /etc/nginx/conf.d/default.conf


text:
# AUTOGENERATED FILE
FROM balenalib/apalis-imx6q-ubuntu:xenial-build

ENV GO_VERSION 1.11.2

RUN mkdir -p /usr/local/go \
	&& curl -SLO "http://resin-packages.s3.amazonaws.com/golang/v$GO_VERSION/go$GO_VERSION.linux-armv7hf.tar.gz" \
	&& echo "3a32f3ca1d966762c2dc9d3a09ec1fdb6e2da07eeb87d4ef4cb01362f3fa9dc8  go$GO_VERSION.linux-armv7hf.tar.gz" | sha256sum -c - \
	&& tar -xzf "go$GO_VERSION.linux-armv7hf.tar.gz" -C /usr/local/go --strip-components=1 \
	&& rm -f go$GO_VERSION.linux-armv7hf.tar.gz

ENV GOROOT /usr/local/go
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
WORKDIR $GOPATH

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]


text:
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

######################################################################
# PY stage that simply does a pip install on our requirements
######################################################################
ARG PY_VER=3.6.9
FROM python:${PY_VER} AS superset-py

RUN mkdir /app \
        && apt-get update -y \
        && apt-get install -y --no-install-recommends \
            build-essential \
            default-libmysqlclient-dev \
            libpq-dev \
        && rm -rf /var/lib/apt/lists/*

# First, we just wanna install requirements, which will allow us to utilize the cache
# in order to only build if and only if requirements change
COPY ./requirements.txt /app/
RUN cd /app \
        && pip install --no-cache -r requirements.txt

######################################################################
# Node stage to deal with static asset construction
######################################################################
FROM node:10-jessie AS superset-node

ARG NPM_BUILD_CMD="build"
ENV BUILD_CMD=${NPM_BUILD_CMD}

# NPM ci first, as to NOT invalidate previous steps except for when package.json changes
RUN mkdir -p /app/superset-frontend
RUN mkdir -p /app/superset/assets
COPY ./docker/frontend-mem-nag.sh /
COPY ./superset-frontend/package* /app/superset-frontend/
RUN /frontend-mem-nag.sh \
        && cd /app/superset-frontend \
        && npm ci

# Next, copy in the rest and let webpack do its thing
COPY ./superset-frontend /app/superset-frontend
# This is BY FAR the most expensive step (thanks Terser!)
RUN cd /app/superset-frontend \
        && npm run ${BUILD_CMD} \
        && rm -rf node_modules

######################################################################
# Final lean image...
######################################################################
ARG PY_VER=3.6.9
FROM python:${PY_VER} AS lean

ENV LANG=C.UTF-8 \
    LC_ALL=C.UTF-8 \
    FLASK_ENV=production \
    FLASK_APP="superset.app:create_app()" \
    PYTHONPATH="/app/pythonpath" \
    SUPERSET_HOME="/app/superset_home" \
    SUPERSET_PORT=8080

RUN useradd --user-group --no-create-home --no-log-init --shell /bin/bash superset \
        && mkdir -p ${SUPERSET_HOME} ${PYTHONPATH} \
        && apt-get update -y \
        && apt-get install -y --no-install-recommends \
            build-essential \
            default-libmysqlclient-dev \
            libpq-dev \
        && rm -rf /var/lib/apt/lists/*

COPY --from=superset-py /usr/local/lib/python3.6/site-packages/ /usr/local/lib/python3.6/site-packages/
# Copying site-packages doesn't move the CLIs, so let's copy them one by one
COPY --from=superset-py /usr/local/bin/gunicorn /usr/local/bin/celery /usr/local/bin/flask /usr/bin/
COPY --from=superset-node /app/superset/static/assets /app/superset/static/assets
COPY --from=superset-node /app/superset-frontend /app/superset-frontend

## Lastly, let's install superset itself
COPY superset /app/superset
COPY setup.py MANIFEST.in README.md /app/
RUN cd /app \
        && chown -R superset:superset * \
        && pip install -e .

COPY ./docker/docker-entrypoint.sh /usr/bin/

WORKDIR /app

USER superset

HEALTHCHECK CMD ["curl", "-f", "http://localhost:8088/health"]

EXPOSE ${SUPERSET_PORT}

ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]

######################################################################
# Dev image...
######################################################################
FROM lean AS dev

COPY ./requirements-dev.txt ./docker/requirements-extra.txt /app/

USER root
RUN cd /app \
    && pip install --no-cache -r requirements-dev.txt -r requirements-extra.txt
USER superset


text:
ARG IMAGE_REPO
FROM ${IMAGE_REPO:-amazeeio}/node:8-builder as builder
COPY package.json yarn.lock /app/
RUN yarn install

FROM ${IMAGE_REPO:-amazeeio}/node:8
COPY --from=builder /app/node_modules /app/node_modules
COPY . /app/

ARG LAGOON_GIT_SHA=0000000000000000000000000000000000000000
ENV LAGOON_GIT_SHA_BUILDTIME ${LAGOON_GIT_SHA}

ARG LAGOON_GIT_BRANCH=undefined
ENV LAGOON_GIT_BRANCH_BUILDTIME ${LAGOON_GIT_BRANCH}

ARG LAGOON_API_VARIABLE_PROJECT
ENV LAGOON_API_VARIABLE_PROJECT_BUILDTIME ${LAGOON_API_VARIABLE_PROJECT}

ARG LAGOON_API_VARIABLE_ENVIRONMENT
ENV LAGOON_API_VARIABLE_ENVIRONMENT_BUILDTIME ${LAGOON_API_VARIABLE_ENVIRONMENT}

ARG LAGOON_API_VARIABLE_OVERRIDE
ENV LAGOON_API_VARIABLE_OVERRIDE_BUILDTIME ${LAGOON_API_VARIABLE_OVERRIDE}

EXPOSE 3000

CMD ["yarn", "run", "start"]


text:
# AUTOGENERATED FILE
FROM balenalib/kitra520-debian:sid-build

ENV NODE_VERSION 17.2.0
ENV YARN_VERSION 1.22.4

RUN for key in \
	6A010C5166006599AA17F08146C2130DFD2497F5 \
	; do \
		gpg --batch --keyserver pgp.mit.edu --recv-keys "$key" || \
		gpg --batch --keyserver keyserver.pgp.com --recv-keys "$key" || \
		gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
	done \
	&& curl -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& echo "d342932c01f4bbea67c83cfb7432d07e0653da1d2f9644e684be5c731caa1d2c  node-v$NODE_VERSION-linux-armv7l.tar.gz" | sha256sum -c - \
	&& tar -xzf "node-v$NODE_VERSION-linux-armv7l.tar.gz" -C /usr/local --strip-components=1 \
	&& rm "node-v$NODE_VERSION-linux-armv7l.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \
	&& curl -fSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \
	&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& mkdir -p /opt/yarn \
	&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/yarn --strip-components=1 \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarn \
	&& ln -s /opt/yarn/bin/yarn /usr/local/bin/yarnpkg \
	&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \
	&& npm config set unsafe-perm true -g --unsafe-perm \
	&& rm -rf /tmp/*

CMD ["echo","'No CMD command was set in Dockerfile! Details about CMD command could be found in Dockerfile Guide section in our Docs. Here's the link: https://balena.io/docs"]

 RUN curl -SLO "https://raw.githubusercontent.com/balena-io-library/base-images/8accad6af708fca7271c5c65f18a86782e19f877/scripts/assets/tests/test-stack@node.sh" \
  && echo "Running test-stack@node" \
  && chmod +x test-stack@node.sh \
  && bash test-stack@node.sh \
  && rm -rf test-stack@node.sh

RUN [ ! -d /.balena/messages ] && mkdir -p /.balena/messages; echo 'Here are a few details about this Docker image (For more information please visit https://www.balena.io/docs/reference/base-images/base-images/): \nArchitecture: ARM v7 \nOS: Debian Sid \nVariant: build variant \nDefault variable(s): UDEV=off \nThe following software stack is preinstalled: \nNode.js v17.2.0, Yarn v1.22.4 \nExtra features: \n- Easy way to install packages with `install_packages <package-name>` command \n- Run anywhere with cross-build feature  (for ARM only) \n- Keep the container idling with `balena-idle` command \n- Show base image details with `balena-info` command' > /.balena/messages/image-info

RUN echo '#!/bin/sh.real\nbalena-info\nrm -f /bin/sh\ncp /bin/sh.real /bin/sh\n/bin/sh "$@"' > /bin/sh-shim \
	&& chmod +x /bin/sh-shim \
	&& cp /bin/sh /bin/sh.real \
	&& mv /bin/sh-shim /bin/sh