Browse Source

add dockerfile

master
zeus 3 years ago
parent
commit
410685e866
  1. 61
      Dockerfile
  2. 5
      Dockerfile.build
  3. 1
      README.md
  4. 5
      extrapackages
  5. 2
      repositories
  6. 61
      setup.sh

61
Dockerfile

@ -0,0 +1,61 @@
ARG NODE_VERSION=6.17.1
FROM mhart/alpine-node:${NODE_VERSION}
LABEL \
org.opencontainers.image.title="Docker Image of nodejs4poc" \
org.opencontainers.image.authors="Swarmlab.io <rootapostolos@swarmlab.io>"
#ENV PATH=/usr/local/texlive/bin/x86_64-linuxmusl:/usr/local/texlive/2020/bin/x86_64-linuxmusl:${PATH}
ENV dockeruser node
ENV USERhome=${dockeruser}
ENV UID=12345
ENV GID=23456
RUN addgroup -S node \
&& adduser -D -g "" -h "/home/${USERhome}" -G "${USERhome}" -u "${UID}" "${USERhome}"
COPY \
setup.sh \
extrapackages \
repositories \
/root/
# -------- next line is in setup.sh ------
# ----------edit if not alpine ----------
# copy repositories /etc/apk/repositories
# --------------------------------------
RUN /root/setup.sh
# nodejs npm install --- opencv----- uncomment --------------------------
ARG USER1=node
ARG NODEPROJECT1-src=playground-client/playground-client
ARG NODEPROJECT1=playground-client
ENV USER1 ${USER1}
ENV NODEPROJECTSRC ${NODEPROJECT1-src}
ENV NODEPROJECT ${NODEPROJECT1}
COPY ${NODEPROJECTSRC} /home/${USER1}/${NODEPROJECT}
RUN chown -R ${USER1}.${USER1} /home/${USER1}
USER ${USER1}
RUN /home/${USER1}/${NODEPROJECT}/install-npm.sh
WORKDIR /home/${USER1}
USER root
USER ${USER1}
WORKDIR /home/${dockeruser}
VOLUME ["/home/${dockeruser}"]
EXPOSE 8080
CMD ["tail","-f","/dev/null"]

5
Dockerfile.build

@ -0,0 +1,5 @@
git clone https://git.swarmlab.io:3000/swarmlab/poc-datacollector.git
docker build -f Dockerfile -t hub.swarmlab.io:5443/opencv4nodejswebcam .

1
README.md

@ -1,2 +1 @@
# playground-poc-node

5
extrapackages

@ -0,0 +1,5 @@
curl
cmake
zlib
unzip
build-base

2
repositories

@ -0,0 +1,2 @@
http://dl-cdn.alpinelinux.org/alpine/v3.2/main @community http://dl-cdn.alpinelinux.org/alpine/edge/community

61
setup.sh

@ -0,0 +1,61 @@
#!/bin/sh
set -e
set -o pipefail
scheme="$1"
retry() {
retries=$1
shift
count=0
until "$@"; do
exit=$?
wait="$(echo "2^$count" | bc)"
count="$(echo "$count + 1" | bc)"
if [ "$count" -lt "$retries" ]; then
echo "Retry $count/$retries exited $exit, retrying in $wait seconds..."
sleep "$wait"
else
echo "Retry $count/$retries exited $exit, no more retries left."
return "$exit"
fi
done
}
# --------custom repos -------
# alpine edit 4 ubuntu
#cp /root/repositories /etc/apk/repositories
echo "==> Install system packages"
apk --no-cache add \
bash \
gnupg \
tar \
wget \
make \
xz
extrap=/root/extrapackages
if [ -f $extrap ]; then
while read -r line; do
extrapackages="$extrapackages $line"
done < $extrap
apk --no-cache add $extrapackages
else
echo "No extrapackages file"
fi
echo "==> Install pm2"
npm install pm2@latest -g
echo "==> Clean up"
rm -rf \
/root/.gnupg \
/setup.sh \
/extrapackages
Loading…
Cancel
Save