progress, not working yet
This commit is contained in:
parent
eec711a6b1
commit
f9970f8b2f
14
Dockerfile
14
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/*
|
||||
|
|
1
Makefile
1
Makefile
|
@ -1,4 +1,5 @@
|
|||
YYYYMMDD := $(shell date +%Y%m%d)
|
||||
BRANCH := $(shell git branch | sed -n -e 's/^\* \(.*\)/\1/p')
|
||||
|
||||
default: build
|
||||
|
||||
|
|
|
@ -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
|
160
run.sh
160
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/* \
|
||||
|
|
Loading…
Reference in New Issue