Archived
2
0
This repository has been archived on 2024-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
neko-custom/.docker/build

101 lines
2.6 KiB
Plaintext
Raw Normal View History

2020-01-14 12:12:55 +13:00
#!/bin/bash
2020-02-10 20:13:40 +13:00
# sudo docker run -p 80:8080 -p 59000-59100:59000-59100/udp --cap-add SYS_ADMIN --shm-size=1gb nurdism/neko:chromium
2020-01-30 20:19:57 +13:00
# sudo docker run -p 80:8080 -p 59000-59100:59000-59100/udp --shm-size=1gb nurdism/neko:firefox
2020-01-31 13:42:05 +13:00
# sudo docker run --network host --shm-size=1gb -it nurdism/neko:base /bin/bash
2020-01-30 20:19:57 +13:00
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/.."
build_gst() {
2020-04-19 08:56:13 +12:00
if [ ! -L /gst || ! -d /gst ]; then
sudo rm -rf /gst;
2020-01-30 20:19:57 +13:00
sudo mkdir -p /workspace/.build/gst
sudo ln -s /workspace/.build/gst /gst
sudo chown -R neko /workspace/.build
fi
2020-01-31 13:42:05 +13:00
#
2020-01-30 20:19:57 +13:00
# build & install gstreamer
sudo su -c 'set -eux; \
2020-01-31 13:42:05 +13:00
rm -rf /gst/local; \
2020-01-30 20:19:57 +13:00
cd /gst; \
for MODULE in \
gstreamer \
gst-plugins-base \
gst-plugins-good \
; do \
if [ ! -d $MODULE ]; then
git clone git://anongit.freedesktop.org/gstreamer/$MODULE; \
fi
cd $MODULE; \
git checkout 1.16; \
case $MODULE in \
gstreamer) GST_ARGS="--disable-gtk-doc" ;; \
gst-plugins-base) GST_ARGS="--disable-gtk-doc --disable-x --disable-xvideo" ;; \
gst-plugins-good) GST_ARGS="--disable-gtk-doc --disable-oss --disable-oss4 --disable-gst_v4l2" ;; \
esac; \
PATH=/gst/local/bin:$PATH PKG_CONFIG_PATH=/gst/local/lib/pkgconfig ./autogen.sh --prefix /gst/local $GST_ARGS; \
make; make install; \
cd /gst; \
done'
}
2020-04-19 08:56:13 +12:00
build_dev() {
set -eux; \
2020-04-19 11:47:55 +12:00
sudo docker build -f files/dev/Dockerfile -t nurdism/neko:dev $DIR ; \
2020-04-19 08:56:13 +12:00
sudo docker push nurdism/neko:dev;
}
build_deps() {
set -eux; \
2020-04-19 11:47:55 +12:00
sudo docker build -f files/deps/Dockerfile -t nurdism/neko:deps $DIR ; \
2020-04-19 08:56:13 +12:00
sudo docker push nurdism/neko:deps;
}
2020-01-30 20:19:57 +13:00
build_base() {
set -eux; \
cd $DIR/server; go get; ./build; \
cd $DIR/client; npm install; npm run build; \
2020-04-19 11:47:55 +12:00
sudo docker build -f files/base/Dockerfile -t nurdism/neko:base $DIR ;
2020-01-30 20:19:57 +13:00
}
build_firefox() {
set -eux; \
2020-04-19 11:47:55 +12:00
sudo docker build -f files/firefox/Dockerfile -t nurdism/neko:firefox -t nurdism/neko:latest $DIR ;
2020-01-30 20:19:57 +13:00
}
build_chromium() {
set -eux; \
2020-04-19 11:47:55 +12:00
sudo docker build -f files/chromium/Dockerfile -t nurdism/neko:chromium $DIR ;
2020-01-30 20:19:57 +13:00
}
build_docker() {
if [ ! -d /gst/local ]; then
build_gst
fi
set -eux; \
build_base; \
build_firefox; \
build_chromium; \
sudo docker images nurdism/neko
}
build_push() {
sudo docker push nurdism/neko:base
sudo docker push nurdism/neko:latest
sudo docker push nurdism/neko:firefox
sudo docker push nurdism/neko:chromium
}
2020-02-05 04:38:19 +13:00
set -ex
2020-01-30 20:19:57 +13:00
case $1 in
push) build_push ;;
docker) build_docker ;;
2020-04-19 08:56:13 +12:00
deps) build_deps ;;
dev) build_dev ;;
2020-01-30 20:19:57 +13:00
gst) build_gst ;;
*) build_docker ;;
esac