mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
added chromium option
This commit is contained in:
@ -1,19 +1,32 @@
|
||||
FROM nurdism/neko
|
||||
FROM debian:stretch-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends autoconf ca-certificates curl netbase wget \
|
||||
bzr git mercurial openssh-client subversion procps automake bzip2 dpkg-dev file g++ gcc \
|
||||
libbz2-dev libc6-dev libcurl4-openssl-dev libdb-dev libevent-dev libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev \
|
||||
libjpeg-dev libkrb5-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev libncurses5-dev libncursesw5-dev \
|
||||
libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev \
|
||||
make patch unzip xz-utils zlib1g-dev pkg-config \
|
||||
&& if ! command -v gpg > /dev/null; then \
|
||||
apt-get update; \
|
||||
apt-get install -y --no-install-recommends gnupg dirmngr; \
|
||||
fi
|
||||
#
|
||||
# cluster fuck of packages for neko, node, go and gstreamer
|
||||
RUN apt-get update; apt-get install -y --no-install-recommends autoconf ca-certificates curl netbase wget \
|
||||
bzr git mercurial openssh-client subversion procps automake bzip2 dpkg-dev file g++ gcc \
|
||||
libbz2-dev libc6-dev libcurl4-openssl-dev libdb-dev libevent-dev libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev \
|
||||
libjpeg-dev libkrb5-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev libncurses5-dev libncursesw5-dev \
|
||||
libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev \
|
||||
make patch unzip xz-utils zlib1g-dev pkg-config \
|
||||
build-essential perl python autopoint bison flex \
|
||||
gettext openssl libopus-dev libvpx-dev libpulse-dev libx11-dev libxv-dev libxt-dev \
|
||||
libxfixes-dev apt-utils x11vnc libxtst-dev dialog \
|
||||
pulseaudio openbox chromium firefox-esr dbus-x11 xvfb xclip supervisor unzip; \
|
||||
if ! command -v gpg > /dev/null; then \
|
||||
apt-get install -y --no-install-recommends gnupg dirmngr; \
|
||||
fi
|
||||
|
||||
#
|
||||
# set up env for gst
|
||||
ENV PATH=/gst/local/bin:$PATH
|
||||
ENV LD_LIBRARY_PATH=/gst/local/lib:$LD_LIBRARY_PATH
|
||||
ENV PKG_CONFIG_PATH=/gst/local/lib/pkgconfig:$PKG_CONFIG_PATH
|
||||
|
||||
#
|
||||
# add node
|
||||
ENV NODE_VERSION 12.14.1
|
||||
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
|
||||
&& case "${dpkgArch##*-}" in \
|
||||
RUN ARCH= ; dpkgArch="$(dpkg --print-architecture)" \
|
||||
;case "${dpkgArch##*-}" in \
|
||||
amd64) ARCH='x64';; \
|
||||
ppc64el) ARCH='ppc64le';; \
|
||||
s390x) ARCH='s390x';; \
|
||||
@ -21,10 +34,10 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
|
||||
armhf) ARCH='armv7l';; \
|
||||
i386) ARCH='x86';; \
|
||||
*) echo "unsupported architecture"; exit 1 ;; \
|
||||
esac \
|
||||
esac;\
|
||||
# gpg keys listed at https://github.com/nodejs/node#release-keys
|
||||
&& set -eux \
|
||||
&& for key in \
|
||||
set -eux;\
|
||||
for key in \
|
||||
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
|
||||
FD3A5288F042B6850C66B31F09FE44734EB7990E \
|
||||
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
|
||||
@ -39,20 +52,22 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \
|
||||
; do \
|
||||
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
|
||||
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
|
||||
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
|
||||
done \
|
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \
|
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
||||
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
|
||||
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
|
||||
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
|
||||
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
|
||||
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
|
||||
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key"; \
|
||||
done; \
|
||||
curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz"; \
|
||||
curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc"; \
|
||||
gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc; \
|
||||
grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - ; \
|
||||
tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner; \
|
||||
rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; \
|
||||
ln -s /usr/local/bin/node /usr/local/bin/nodejs
|
||||
|
||||
#
|
||||
# add go
|
||||
ENV GOLANG_VERSION 1.13.6
|
||||
RUN set -eux \
|
||||
&& dpkgArch="$(dpkg --print-architecture)" \
|
||||
&& case "${dpkgArch##*-}" in \
|
||||
RUN set -eux; \
|
||||
dpkgArch="$(dpkg --print-architecture)"; \
|
||||
case "${dpkgArch##*-}" in \
|
||||
amd64) goRelArch='linux-amd64'; goRelSha256='a1bc06deb070155c4f67c579f896a45eeda5a8fa54f35ba233304074c4abbbbd' ;; \
|
||||
armhf) goRelArch='linux-armv6l'; goRelSha256='37a1a83e363dcf146a67fa839d170fd1afb13009585fdd493d0a3370fbe6f785' ;; \
|
||||
arm64) goRelArch='linux-arm64'; goRelSha256='0a18125c4ed80f9c3045cf92384670907c4796b43ed63c4307210fe93e5bbca5' ;; \
|
||||
@ -61,31 +76,31 @@ RUN set -eux \
|
||||
s390x) goRelArch='linux-s390x'; goRelSha256='5cd9900a1fa0f0cac657930b648381cad9b8c5e2bbc77caf86a6fb5cedad0017' ;; \
|
||||
*) goRelArch='src'; goRelSha256='aae5be954bdc40bcf8006eb77e8d8a5dde412722bc8effcdaf9772620d06420c'; \
|
||||
echo >&2; echo >&2 "warning: current architecture ($dpkgArch) does not have a corresponding Go binary release; will be building from source"; echo >&2 ;; \
|
||||
esac \
|
||||
&& url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz" \
|
||||
&& wget -O go.tgz "$url" \
|
||||
&& echo "${goRelSha256} *go.tgz" | sha256sum -c - \
|
||||
&& tar -C /usr/local -xzf go.tgz \
|
||||
&& rm go.tgz \
|
||||
&& if [ "$goRelArch" = 'src' ]; then \
|
||||
esac; \
|
||||
url="https://golang.org/dl/go${GOLANG_VERSION}.${goRelArch}.tar.gz"; \
|
||||
wget -O go.tgz "$url"; \
|
||||
echo "${goRelSha256} *go.tgz" | sha256sum -c - ; \
|
||||
tar -C /usr/local -xzf go.tgz; \
|
||||
rm go.tgz; \
|
||||
if [ "$goRelArch" = 'src' ]; then \
|
||||
echo >&2; \
|
||||
echo >&2 'error: UNIMPLEMENTED'; \
|
||||
echo >&2 'TODO install golang-any from jessie-backports for GOROOT_BOOTSTRAP (and uninstall after build)'; \
|
||||
echo >&2; \
|
||||
exit 1; \
|
||||
fi \
|
||||
&& export PATH="/usr/local/go/bin:$PATH" \
|
||||
&& go version
|
||||
fi; \
|
||||
export PATH="/usr/local/go/bin:$PATH"; \
|
||||
go version
|
||||
|
||||
ENV GOPATH /go
|
||||
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
|
||||
|
||||
#
|
||||
# install Go tools w/module support
|
||||
RUN mkdir -p /tmp/gotools \
|
||||
&& cd /tmp/gotools \
|
||||
&& GO111MODULE=on go get -v golang.org/x/tools/gopls@latest 2>&1 \
|
||||
&& GO111MODULE=on go get -v \
|
||||
RUN mkdir -p /tmp/gotools; \
|
||||
cd /tmp/gotools; \
|
||||
GO111MODULE=on go get -v golang.org/x/tools/gopls@latest 2>&1; \
|
||||
GO111MODULE=on go get -v \
|
||||
honnef.co/go/tools/...@latest \
|
||||
golang.org/x/tools/cmd/gorename@latest \
|
||||
golang.org/x/tools/cmd/goimports@latest \
|
||||
@ -105,21 +120,20 @@ RUN mkdir -p /tmp/gotools \
|
||||
github.com/zmb3/gogetdoc@latest \
|
||||
github.com/fatih/gomodifytags@latest \
|
||||
github.com/mgechev/revive@latest \
|
||||
github.com/go-delve/delve/cmd/dlv@latest 2>&1 \
|
||||
github.com/go-delve/delve/cmd/dlv@latest 2>&1; \
|
||||
#
|
||||
# install Go tools w/o module support
|
||||
&& go get -v github.com/alecthomas/gometalinter 2>&1 \
|
||||
go get -v github.com/alecthomas/gometalinter 2>&1; \
|
||||
#
|
||||
# install gocode-gomod
|
||||
&& go get -x -d github.com/stamblerre/gocode 2>&1 \
|
||||
&& go build -o gocode-gomod github.com/stamblerre/gocode \
|
||||
&& mv gocode-gomod $GOPATH/bin/ \
|
||||
go get -x -d github.com/stamblerre/gocode 2>&1; \
|
||||
go build -o gocode-gomod github.com/stamblerre/gocode; \
|
||||
mv gocode-gomod $GOPATH/bin/; \
|
||||
#
|
||||
# install golangci-lint
|
||||
&& curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin 2>&1
|
||||
|
||||
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" "$GOPATH/pkg/mod" && chmod -R 777 "$GOPATH"
|
||||
|
||||
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin 2>&1; \
|
||||
mkdir -p "$GOPATH/src" "$GOPATH/bin" "$GOPATH/pkg/mod"; chmod -R 777 "$GOPATH"
|
||||
#
|
||||
# turn on go modules
|
||||
ENV GO111MODULE=on
|
||||
|
||||
@ -138,31 +152,27 @@ ARG INSTALL_ZSH="true"
|
||||
ARG COMMON_SCRIPT_SOURCE="https://raw.githubusercontent.com/microsoft/vscode-dev-containers/master/script-library/common-debian.sh"
|
||||
ARG COMMON_SCRIPT_SHA="dev-mode"
|
||||
|
||||
# configure apt and install packages
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install --no-install-recommends apt-utils x11vnc libxtst-dev openssl dialog wget ca-certificates 2>&1 \
|
||||
#
|
||||
# verify git, common tools / libs installed, add/modify non-root user, optionally install zsh
|
||||
&& wget -q -O /tmp/common-setup.sh $COMMON_SCRIPT_SOURCE \
|
||||
&& if [ "$COMMON_SCRIPT_SHA" != "dev-mode" ]; then echo "$COMMON_SCRIPT_SHA /tmp/common-setup.sh" | sha256sum -c - ; fi \
|
||||
&& /bin/bash /tmp/common-setup.sh "$INSTALL_ZSH" "$USERNAME" "$USER_UID" "$USER_GID" \
|
||||
&& rm /tmp/common-setup.sh \
|
||||
# verify git, common tools / libs installed, add/modify non-root user, optionally install zsh
|
||||
RUN wget -q -O /tmp/common-setup.sh $COMMON_SCRIPT_SOURCE; \
|
||||
if [ "$COMMON_SCRIPT_SHA" != "dev-mode" ]; then echo "$COMMON_SCRIPT_SHA /tmp/common-setup.sh" | sha256sum -c - ; fi; \
|
||||
/bin/bash /tmp/common-setup.sh "$INSTALL_ZSH" "$USERNAME" "$USER_UID" "$USER_GID"; \
|
||||
rm /tmp/common-setup.sh; \
|
||||
#
|
||||
# install docker
|
||||
&& apt-get install -y apt-transport-https gnupg-agent software-properties-common lsb-release \
|
||||
&& curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | (OUT=$(apt-key add - 2>&1) || echo $OUT) \
|
||||
&& add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" \
|
||||
&& apt-get update && apt-get install -y docker-ce-cli \
|
||||
apt-get install -y apt-transport-https gnupg-agent software-properties-common lsb-release; \
|
||||
curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | (OUT=$(apt-key add - 2>&1) || echo $OUT); \
|
||||
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable"; \
|
||||
apt-get update; apt-get install -y docker-ce-cli; \
|
||||
#
|
||||
# install docker compose
|
||||
&& curl -sSL "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \
|
||||
&& chmod +x /usr/local/bin/docker-compose \
|
||||
curl -sSL "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; \
|
||||
chmod +x /usr/local/bin/docker-compose; \
|
||||
#
|
||||
# set alternate global install location that both users have rights to access
|
||||
&& mkdir -p /usr/local/share/npm-global \
|
||||
&& chown ${USERNAME}:root /usr/local/share/npm-global \
|
||||
&& npm config -g set prefix /usr/local/share/npm-global \
|
||||
&& sudo -u ${USERNAME} npm config -g set prefix /usr/local/share/npm-global
|
||||
mkdir -p /usr/local/share/npm-global; \
|
||||
chown ${USERNAME}:root /usr/local/share/npm-global; \
|
||||
npm config -g set prefix /usr/local/share/npm-global; \
|
||||
sudo -u ${USERNAME} npm config -g set prefix /usr/local/share/npm-global
|
||||
|
||||
ENV PATH=/usr/local/share/npm-global/bin:$PATH
|
||||
|
||||
|
Reference in New Issue
Block a user