From f9970f8b2ffea03f1f5f067099f5318cac74c4d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Paul Date: Sat, 3 Aug 2019 16:22:25 -0700 Subject: [PATCH] progress, not working yet --- Dockerfile | 14 ++-- Makefile | 1 + bin/sandbox | 3 - bin/sandbox-fast | 3 - bin/sandbox-kill | 3 - bin/start-container | 10 +++ my_init | 9 --- run.sh | 160 ++++++++++++++++++++++++++------------------ 8 files changed, 115 insertions(+), 88 deletions(-) delete mode 100755 bin/sandbox delete mode 100755 bin/sandbox-fast delete mode 100755 bin/sandbox-kill create mode 100644 bin/start-container delete mode 100644 my_init diff --git a/Dockerfile b/Dockerfile index e90d68e..bfdf8a2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,14 @@ -FROM ubuntu:18.04 +FROM phusion/baseimage:0.11 +CMD ["/sbin/my_init"] ADD ./sources.list /etc/apt/sources.list -RUN echo "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d +# setup ADD ./run.sh /tmp/run.sh RUN bash /tmp/run.sh && rm /tmp/run.sh -ADD ./my_init /usr/sbin/my_init -RUN chmod +x /usr/sbin/my_init -CMD /usr/sbin/my_init + +# enable ssh +RUN rm -f /etc/service/sshd/down + +#cleanup +RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* diff --git a/Makefile b/Makefile index d0bd8c8..bdc0447 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ YYYYMMDD := $(shell date +%Y%m%d) +BRANCH := $(shell git branch | sed -n -e 's/^\* \(.*\)/\1/p') default: build diff --git a/bin/sandbox b/bin/sandbox deleted file mode 100755 index 8444ecd..0000000 --- a/bin/sandbox +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -docker run -d --name sandbox sneak/sandbox -docker exec -ti sandbox script -q -c "TERM=xterm-color byobu" /dev/null diff --git a/bin/sandbox-fast b/bin/sandbox-fast deleted file mode 100755 index 028a8d5..0000000 --- a/bin/sandbox-fast +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -docker run -d --add-host archive.ubuntu.com:172.17.0.1 --name sandbox sneak/sandbox -docker exec -ti sandbox script -q -c "TERM=xterm-color byobu" /dev/null diff --git a/bin/sandbox-kill b/bin/sandbox-kill deleted file mode 100755 index 88d1b6f..0000000 --- a/bin/sandbox-kill +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -docker kill sandbox -docker rm sandbox diff --git a/bin/start-container b/bin/start-container new file mode 100644 index 0000000..8d1b13f --- /dev/null +++ b/bin/start-container @@ -0,0 +1,10 @@ +#!/bin/bash + +IMAGE="sneak/sandbox:next" + +docker run + -v /home/sneak:/home/sneak \ + -v /storage/admin:/root \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /root/.ssh/authorized_keys:/root/.ssh/authorized_keys \ + $IMAGE diff --git a/my_init b/my_init deleted file mode 100644 index 2184b5a..0000000 --- a/my_init +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -export > /etc/environment -/usr/sbin/runsvdir-start & -sleep 1 -if [[ ! -e /var/log/syslog ]]; then - touch /var/log/syslog -fi -exec tail -qf /var/log/syslog /etc/service/*/log/*.log diff --git a/run.sh b/run.sh index ac4fcf4..ca60d73 100644 --- a/run.sh +++ b/run.sh @@ -2,55 +2,91 @@ export DEBIAN_FRONTEND=noninteractive set -x +set -e exec 1> >(tee -a /var/log/sandboxbuild.log) 2>&1 PKGS=" + apt-transport-https apt-utils + aspell + aspell-en + automake bash-completion + bc bind9-host bonnie++ build-essential byobu + cmake command-not-found + curl daemontools debmirror default-jre + diffstat + dnsutils + dos2unix + editorconfig + ffmpeg fonts-indic fonts-ipafont-gothic fonts-ipafont-mincho fortune git + gnupg-agent + gnupg2 golang-go + host + imagemagick + iputils-ping irssi jq + lcov ldap-auth-client ldap-utils + libasound2 + libatk1.0-0 libboost-all-dev libdb++-dev + libgconf-2-4 + libgtk-3-0 + libjpeg-dev libnss-mdns + libnss3 + libpng-dev + libssl-dev + libtool + libxcursor1 libxml2 libxml2-dev libxslt1-dev + locales lsof mailutils make + man man-db + mercurial mosh mutt netcat-openbsd nmap - nodejs - npm nscd openssh-server + pass pbzip2 + pinentry-curses pkg-config + pkg-config + psmisc pv pwgen python + python3 python-dev + python3-dev python-pip - python-software-properties + python3-pip rbenv rsync rsyslog @@ -61,62 +97,64 @@ PKGS=" snmp snmpd software-properties-common + strace + sudo + tcpdump telnet texlive-latex-base tmux + tree ttf-wqy-microhei ttf-wqy-zenhei vagrant vim + vim-gtk wamerican-insane wget + xterm + zip " -apt-get update -apt-get -y upgrade - -for PKG in $PKGS ; do - apt-get install -y $PKG -done - -# install docker -apt-get install -y docker -#apt-get install apt-transport-https ca-certificates -#apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 \ -# --recv-keys 58118E89F3A912897C070ADBF76221572C52609D -#echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > \ -# /etc/apt/sources.list.d/docker.list -#apt-get update -#apt-get install docker-engine - -# install docker machine (this is gross): -curl -L \ -https://github.com/docker/machine/releases/download/v0.6.0/docker-machine-`uname -s`-`uname -m` > \ - /usr/local/bin/docker-machine && \ - chmod +x /usr/local/bin/docker-machine - -# install docker compose (also gross): -curl -L \ -https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > \ - /usr/local/bin/docker-compose && \ - chmod +x /usr/local/bin/docker-compose - -# and completion -curl -L \ -https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > \ - /etc/bash_completion.d/docker-compose +apt update +apt -y upgrade +apt install -y $PKGS # install neovim add-apt-repository ppa:neovim-ppa/unstable -apt-get update -apt-get install neovim +apt update +apt install -y neovim -# install ruby-build for rbenv install -git clone https://github.com/rbenv/ruby-build.git /root/.rbenv/plugins/ruby-build +mkdir -p /etc/bashrc.d +cat >> /etc/skel/.bashrc <<'EOF' +for FN in /etc/bashrc.d/*.sh; do + source "$FN" +done +EOF -# install some rbenv versions -rbenv install 2.3.0 -rbenv install jruby-9.0.5.0 +################################################################################ +## install nvm + node +################################################################################ + +export NVM_DIR='/usr/local/nvm' +mkdir -p "$NVM_DIR" +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash +echo 'source /usr/local/nvm/nvm.sh' > /etc/bashrc.d/100.nvm.sh +source /etc/bashrc.d/100.nvm.sh + +nvm install stable + +################################################################################ +## install rbenv + ruby +################################################################################ +git clone https://github.com/rbenv/rbenv.git /usr/local/rbenv +cat > /etc/bashrc.d/100.rbenv.sh <<'EOF' +export PATH="/usr/local/rbenv/bin:$PATH" +eval "$(rbenv init -)" +EOF +source /etc/bashrc.d/100.rbenv.sh +rbenv install $(rbenv install -l | grep -v - | tail -1) +#rbenv install 2.6.3 +#rbenv install jruby-9.0.5.0 # install some gems GEMS=" @@ -127,29 +165,20 @@ for GEM in $GEMS ; do gem install -V $GEM done -# install ppss, paralell processing shell script +################################################################################ +## install ppss, paralell processing shell script +################################################################################ cd /usr/local/bin wget https://raw.githubusercontent.com/sneak/ppss/master/ppss chmod +x ./ppss -# update npm -npm update -g --loglevel info npm - -# install some npm packages -NPM_PKGS=" - yarn -" - -for PKG in $NPM_PKGS ; do - npm install -g --loglevel info $PKG -done - - -# upgrade pip and install bare essentials -# update other packages as possible -pip install --upgrade pip -pip install setuptools -pip install pip-review +################################################################################ +## upgrade pip and install bare essentials +## update other python packages as possible +################################################################################ +pip3 install --upgrade pip +pip3 install setuptools +pip3 install pip-review pip-review --verbose --auto # install other python packages @@ -160,11 +189,12 @@ PIP_PKGS=" " for PKG in $PIP_PKGS; do - pip install $PKG + pip3 install $PKG done -# cleanup filesystem after build - +################################################################################ +## cleanup filesystem after build +################################################################################ rm -rf \ /root/.cache \ /var/cache/* \