Compare commits
6 Commits
last-xenia
...
master
Author | SHA1 | Date |
---|---|---|
Jeffrey Paul | a1485030e8 | |
Jeffrey Paul | b8d90f2f8f | |
Jeffrey Paul | c7f2b8e9d2 | |
Jeffrey Paul | 5713b283ed | |
Jeffrey Paul | f9970f8b2f | |
Jeffrey Paul | eec711a6b1 |
19
Dockerfile
19
Dockerfile
|
@ -1,10 +1,19 @@
|
||||||
FROM ubuntu:16.04
|
FROM phusion/baseimage:0.11
|
||||||
|
CMD ["/sbin/my_init"]
|
||||||
|
|
||||||
ADD ./sources.list /etc/apt/sources.list
|
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
|
ADD ./run.sh /tmp/run.sh
|
||||||
RUN bash /tmp/run.sh && rm /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
|
# enable ssh
|
||||||
CMD /usr/sbin/my_init
|
RUN rm -f /etc/service/sshd/down
|
||||||
|
|
||||||
|
#cleanup
|
||||||
|
RUN apt-get clean && \
|
||||||
|
rm -rf \
|
||||||
|
/var/lib/apt/lists/* \
|
||||||
|
/tmp/* \
|
||||||
|
/var/tmp/* \
|
||||||
|
/etc/ssh/ssh_host_*_key
|
||||||
|
|
8
Makefile
8
Makefile
|
@ -1,11 +1,7 @@
|
||||||
YYYYMMDD := $(shell date +%Y%m%d)
|
YYYYMMDD := $(shell date +%Y%m%d)
|
||||||
|
BRANCH := $(shell git branch | sed -n -e 's/^\* \(.*\)/\1/p')
|
||||||
|
|
||||||
default: build
|
default: build
|
||||||
|
|
||||||
build:
|
build:
|
||||||
script -q ./build.log docker build --no-cache -t sneak/sandbox .
|
script -q ./build.log docker build --no-cache -t sneak/sandbox:$(YYYYMMDD) .
|
||||||
docker tag sneak/sandbox sneak/sandbox:$(YYYYMMDD)
|
|
||||||
|
|
||||||
push:
|
|
||||||
docker push sneak/sandbox
|
|
||||||
docker push sneak/sandbox:$(YYYYMMDD)
|
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
docker kill sandbox
|
|
||||||
docker rm sandbox
|
|
|
@ -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
|
9
my_init
9
my_init
|
@ -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
|
|
212
run.sh
212
run.sh
|
@ -1,56 +1,95 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
USERNAME="sneak"
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
set -e
|
||||||
exec 1> >(tee -a /var/log/sandboxbuild.log) 2>&1
|
exec 1> >(tee -a /var/log/sandboxbuild.log) 2>&1
|
||||||
|
|
||||||
PKGS="
|
PKGS="
|
||||||
|
apt-transport-https
|
||||||
apt-utils
|
apt-utils
|
||||||
|
aspell
|
||||||
|
aspell-en
|
||||||
|
automake
|
||||||
bash-completion
|
bash-completion
|
||||||
|
bc
|
||||||
bind9-host
|
bind9-host
|
||||||
bonnie++
|
bonnie++
|
||||||
build-essential
|
build-essential
|
||||||
byobu
|
byobu
|
||||||
|
cmake
|
||||||
command-not-found
|
command-not-found
|
||||||
|
curl
|
||||||
daemontools
|
daemontools
|
||||||
debmirror
|
debmirror
|
||||||
default-jre
|
default-jre
|
||||||
|
diffstat
|
||||||
|
dnsutils
|
||||||
|
docker.io
|
||||||
|
dos2unix
|
||||||
|
editorconfig
|
||||||
|
ffmpeg
|
||||||
fonts-indic
|
fonts-indic
|
||||||
fonts-ipafont-gothic
|
fonts-ipafont-gothic
|
||||||
fonts-ipafont-mincho
|
fonts-ipafont-mincho
|
||||||
fortune
|
fortune
|
||||||
git
|
git
|
||||||
|
gnupg-agent
|
||||||
|
gnupg2
|
||||||
golang-go
|
golang-go
|
||||||
|
host
|
||||||
|
imagemagick
|
||||||
|
iputils-ping
|
||||||
irssi
|
irssi
|
||||||
jq
|
jq
|
||||||
|
lcov
|
||||||
ldap-auth-client
|
ldap-auth-client
|
||||||
ldap-utils
|
ldap-utils
|
||||||
|
libasound2
|
||||||
|
libatk1.0-0
|
||||||
libboost-all-dev
|
libboost-all-dev
|
||||||
libdb++-dev
|
libdb++-dev
|
||||||
|
libgconf-2-4
|
||||||
|
libgtk-3-0
|
||||||
|
libjpeg-dev
|
||||||
libnss-mdns
|
libnss-mdns
|
||||||
|
libnss3
|
||||||
|
libpng-dev
|
||||||
|
libssl-dev
|
||||||
|
libtool
|
||||||
|
libxcursor1
|
||||||
libxml2
|
libxml2
|
||||||
libxml2-dev
|
libxml2-dev
|
||||||
libxslt1-dev
|
libxslt1-dev
|
||||||
|
locales
|
||||||
lsof
|
lsof
|
||||||
mailutils
|
mailutils
|
||||||
make
|
make
|
||||||
|
man
|
||||||
man-db
|
man-db
|
||||||
|
mercurial
|
||||||
mosh
|
mosh
|
||||||
mutt
|
mutt
|
||||||
netcat-openbsd
|
netcat-openbsd
|
||||||
nmap
|
nmap
|
||||||
nodejs
|
|
||||||
npm
|
|
||||||
nscd
|
nscd
|
||||||
openssh-server
|
openssh-server
|
||||||
|
pass
|
||||||
pbzip2
|
pbzip2
|
||||||
|
pinentry-curses
|
||||||
pkg-config
|
pkg-config
|
||||||
|
pkg-config
|
||||||
|
psmisc
|
||||||
pv
|
pv
|
||||||
pwgen
|
pwgen
|
||||||
python
|
python
|
||||||
|
python3
|
||||||
python-dev
|
python-dev
|
||||||
|
python3-dev
|
||||||
python-pip
|
python-pip
|
||||||
python-software-properties
|
python3-pip
|
||||||
rbenv
|
rbenv
|
||||||
rsync
|
rsync
|
||||||
rsyslog
|
rsyslog
|
||||||
|
@ -61,62 +100,96 @@ PKGS="
|
||||||
snmp
|
snmp
|
||||||
snmpd
|
snmpd
|
||||||
software-properties-common
|
software-properties-common
|
||||||
|
strace
|
||||||
|
sudo
|
||||||
|
tcpdump
|
||||||
telnet
|
telnet
|
||||||
texlive-latex-base
|
texlive-latex-base
|
||||||
tmux
|
tmux
|
||||||
|
tree
|
||||||
ttf-wqy-microhei
|
ttf-wqy-microhei
|
||||||
ttf-wqy-zenhei
|
ttf-wqy-zenhei
|
||||||
vagrant
|
vagrant
|
||||||
vim
|
vim
|
||||||
|
vim-gtk
|
||||||
wamerican-insane
|
wamerican-insane
|
||||||
wget
|
wget
|
||||||
|
xterm
|
||||||
|
zip
|
||||||
"
|
"
|
||||||
|
|
||||||
apt-get update
|
apt update
|
||||||
apt-get -y upgrade
|
apt -y upgrade
|
||||||
|
apt install -y $PKGS
|
||||||
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
|
|
||||||
|
|
||||||
# install neovim
|
# install neovim
|
||||||
add-apt-repository ppa:neovim-ppa/unstable
|
add-apt-repository ppa:neovim-ppa/unstable
|
||||||
apt-get update
|
apt update
|
||||||
apt-get install neovim
|
apt install -y neovim
|
||||||
|
|
||||||
# install ruby-build for rbenv install
|
mkdir -p /etc/bashrc.d
|
||||||
git clone https://github.com/rbenv/ruby-build.git /root/.rbenv/plugins/ruby-build
|
mkdir -p /etc/profile.d
|
||||||
|
|
||||||
# install some rbenv versions
|
cat >> /etc/bash.bashrc <<'EOF'
|
||||||
rbenv install 2.3.0
|
if ! shopt -oq posix; then
|
||||||
rbenv install jruby-9.0.5.0
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
for FN in /etc/bashrc.d/*.sh; do
|
||||||
|
source "$FN"
|
||||||
|
done
|
||||||
|
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
for FN in /etc/profile.d/*.sh; do
|
||||||
|
source "$FN"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## 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
|
||||||
|
cat > /etc/bashrc.d/100.nvm.sh <<'EOF'
|
||||||
|
source /usr/local/nvm/nvm.sh
|
||||||
|
EOF
|
||||||
|
source /etc/bashrc.d/100.nvm.sh
|
||||||
|
|
||||||
|
nvm install node
|
||||||
|
nvm use node
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## install yarn
|
||||||
|
################################################################################
|
||||||
|
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg |
|
||||||
|
apt-key add -
|
||||||
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" |
|
||||||
|
tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
apt update && apt install -y yarn
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## 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
|
||||||
|
|
||||||
|
mkdir -p "$(rbenv root)"/plugins
|
||||||
|
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
|
||||||
|
|
||||||
|
rbenv install $(rbenv install -l | grep -v - | tail -1)
|
||||||
|
#rbenv install 2.6.3
|
||||||
|
#rbenv install jruby-9.0.5.0
|
||||||
|
|
||||||
# install some gems
|
# install some gems
|
||||||
GEMS="
|
GEMS="
|
||||||
|
@ -127,47 +200,38 @@ for GEM in $GEMS ; do
|
||||||
gem install -V $GEM
|
gem install -V $GEM
|
||||||
done
|
done
|
||||||
|
|
||||||
# install ppss, paralell processing shell script
|
################################################################################
|
||||||
|
## install ppss, paralell processing shell script
|
||||||
|
################################################################################
|
||||||
cd /usr/local/bin
|
cd /usr/local/bin
|
||||||
wget https://raw.githubusercontent.com/sneak/ppss/master/ppss
|
wget https://raw.githubusercontent.com/sneak/ppss/master/ppss
|
||||||
chmod +x ./ppss
|
chmod +x ./ppss
|
||||||
|
|
||||||
# update npm
|
################################################################################
|
||||||
npm update -g --loglevel info npm
|
## upgrade pip and install bare essentials
|
||||||
|
## update other python packages as possible
|
||||||
# install some npm packages
|
################################################################################
|
||||||
NPM_PKGS="
|
#pip3 install --upgrade pip
|
||||||
coffee-script
|
pip3 install setuptools
|
||||||
coffeelint
|
#pip3 install pip-review
|
||||||
"
|
#pip-review --verbose --auto
|
||||||
|
|
||||||
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
|
|
||||||
pip-review --verbose --auto
|
|
||||||
|
|
||||||
# install other python packages
|
# install other python packages
|
||||||
PIP_PKGS="
|
PIP_PKGS="
|
||||||
virtualenv
|
|
||||||
pylint
|
|
||||||
awscli
|
awscli
|
||||||
|
pipenv
|
||||||
|
pylint
|
||||||
|
virtualenv
|
||||||
"
|
"
|
||||||
|
|
||||||
for PKG in $PIP_PKGS; do
|
for PKG in $PIP_PKGS; do
|
||||||
pip install $PKG
|
pip3 install $PKG
|
||||||
done
|
done
|
||||||
|
|
||||||
# cleanup filesystem after build
|
################################################################################
|
||||||
|
## add working user and add to sudo nopassword
|
||||||
rm -rf \
|
################################################################################
|
||||||
/root/.cache \
|
groupadd -g 1000 $USERNAME
|
||||||
/var/cache/* \
|
useradd -u 1000 -g 1000 -s /bin/bash $USERNAME
|
||||||
/var/lib/apt/lists/* \
|
usermod -p '*' $USERNAME
|
||||||
/core
|
echo "$USERNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main universe
|
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main universe multiverse restricted
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main universe
|
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main universe multiverse restricted
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-security main universe
|
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main universe multiverse restricted
|
||||||
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-backports main universe
|
deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-backports main universe multiverse restricted
|
||||||
|
|
Loading…
Reference in New Issue