Reorganize some files and import some others
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
RANDOM = $(shell bash -c 'echo $$RANDOM')
|
||||
HOME = $(DOCKER_HOME)
|
||||
BASE = $(HOME)/build
|
||||
DIR = $(HOME)/images/$(NAME)
|
||||
FILE = $(DIR)/Dockerfile
|
||||
FILE = $(BASE)/Dockerfile
|
||||
FROM = ubuntu:trusty
|
||||
PORT = 8001
|
||||
MODE = minimal
|
||||
ARGS = --no-cache --rm=true
|
||||
ARGS = --rm=true #--no-cache
|
||||
|
||||
include $(wildcard $(HOME)/build/make/*.mk)
|
||||
|
||||
@@ -17,27 +17,35 @@ define execute
|
||||
$(call download,-O -,$(1),| bash)
|
||||
endef
|
||||
|
||||
define script
|
||||
$(call execute,scripts/$(1).sh)
|
||||
endef
|
||||
|
||||
define boot
|
||||
$(call download,-O /opt/init.d/$(1)_$(2),boot/$(2).sh)
|
||||
@echo 'RUN chmod +x /opt/init.d/$(1)_$(2)' >> ${FILE}
|
||||
endef
|
||||
|
||||
define runit
|
||||
@echo 'RUN mkdir -p /etc/service/$(1)' >> ${FILE}
|
||||
$(call download,-O /etc/service/$(1)/run,runit/$(1))
|
||||
@echo 'RUN chmod +x /etc/service/$(1)/run' >> ${FILE}
|
||||
endef
|
||||
|
||||
define script
|
||||
$(call execute,scripts/$(1).sh)
|
||||
endef
|
||||
|
||||
define script_force
|
||||
$(call execute,scripts/$(1).sh?random=$(RANDOM))
|
||||
endef
|
||||
|
||||
all: build bin service clean
|
||||
|
||||
build: prepare
|
||||
$(call script,cleanup)
|
||||
@echo 'RUN chmod +x /opt/init.d/*' >> ${FILE}
|
||||
@echo 'CMD ["/opt/init"]' >> ${FILE}
|
||||
@$(shell cd ${BASE} && python -m SimpleHTTPServer $(PORT) > /dev/null &)
|
||||
@docker build -t $(NAME):$(VERSION) $(ARGS) ${DIR}
|
||||
@kill -9 $(lsof -i tcp:8001 -t)
|
||||
@sleep 2
|
||||
@docker build -t $(NAME):$(VERSION) $(ARGS) ${BASE}
|
||||
@kill -9 $(lsof -i tcp:$(PORT) -t)
|
||||
|
||||
prepare:
|
||||
@echo FROM $(FROM) > ${FILE}
|
||||
@@ -46,8 +54,9 @@ prepare:
|
||||
@echo ENV HOST_ADDR $(HOST_ADDR) >> ${FILE}
|
||||
@echo ENV HOST_PORT $(PORT) >> ${FILE}
|
||||
@echo 'RUN apt-get install -y wget' >> ${FILE}
|
||||
$(call download,-P /build,config,)
|
||||
$(call download,-P /build,init)
|
||||
$(call download,-P /build,config)
|
||||
$(call download,-P /opt,init)
|
||||
@echo 'RUN chmod +x /opt/init' >> ${FILE}
|
||||
$(call script,prepare)
|
||||
|
||||
service:
|
||||
|
||||
@@ -11,4 +11,9 @@ apt_get_install_permanent() {
|
||||
apt_get_install_temporary() {
|
||||
echo $@ >> /build/temporary
|
||||
$apt_get_install "$@"
|
||||
}
|
||||
|
||||
export_env() {
|
||||
export $1="$2"
|
||||
echo -n $2 > /etc/container_environment/$1
|
||||
}
|
||||
2
build/make/lighttpd-php.mk
Normal file
2
build/make/lighttpd-php.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
lighttpd-php: php lighttpd
|
||||
$(call script_force,$@)
|
||||
3
build/make/lighttpd.mk
Normal file
3
build/make/lighttpd.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
lighttpd:
|
||||
$(call script_force,$@)
|
||||
$(call runit,$@)
|
||||
3
build/make/mysql.mk
Normal file
3
build/make/mysql.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
mysql:
|
||||
$(call script_force,$@)
|
||||
$(call runit,$@)
|
||||
2
build/make/php.mk
Normal file
2
build/make/php.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
php:
|
||||
$(call script_force,$@)
|
||||
7
build/runit/lighttpd
Normal file
7
build/runit/lighttpd
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
mkdir -p `dirname $LIGHTTPD_LOG` $LIGHTTPD_DOMAINS
|
||||
chown www-data:www-data `dirname $LIGHTTPD_LOG`
|
||||
if [[ ! -e $LIGHTTPD_DOMAINS ]]; then
|
||||
touch $LIGHTTPD_DOMAINS/empty.conf
|
||||
fi
|
||||
/usr/sbin/lighttpd -D -f $LIGHTTPD_CONFIG
|
||||
@@ -13,6 +13,6 @@ if [[ -n "$MYSQL_SETUP" ]]; then
|
||||
until [[ -n $(netstat -an | grep 3306) ]]; do
|
||||
sleep 1
|
||||
done
|
||||
mysqladmin -u root password kreeft
|
||||
mysqladmin -u root password dummy
|
||||
fg
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/bin/sh
|
||||
echo "$HOST_ADDR host" >> /tmp/hosts
|
||||
mkdir -p `dirname $REDIS_LOG` $REDIS_DATA
|
||||
sysctl vm.overcommit_memory=1
|
||||
/usr/bin/redis-server $REDIS_CONFIG
|
||||
|
||||
@@ -5,7 +5,7 @@ set -x
|
||||
|
||||
## Remove temporary packages for minimal builds
|
||||
if [ $MODE == "minimal" ]; then
|
||||
cat /build/temporary | xargs apt-get -y autoremove
|
||||
cat /build/temporary | xargs apt-get -y --purge autoremove
|
||||
fi
|
||||
|
||||
## Clean apt files
|
||||
|
||||
@@ -9,5 +9,11 @@ mkdir -p $LD_LIBRARY_PATH
|
||||
cp /lib/x86_64-linux-gnu/libnss_files.so.2 $LD_LIBRARY_PATH
|
||||
sed -i 's,/etc/hosts,/tmp/hosts,' $LD_LIBRARY_PATH/libnss_files.so.2
|
||||
|
||||
## Other commands
|
||||
# ENV LD_LIBRARY_PATH /root/lib
|
||||
# RUN mkdir $LD_LIBRARY_PATH
|
||||
# RUN cp /lib/x86_64-linux-gnu/libnss_files.so.2 $LD_LIBRARY_PATH
|
||||
# RUN perl -pi -e 's:/etc/hosts:/tmp/hosts:g' $LD_LIBRARY_PATH/libnss_files.so.2
|
||||
|
||||
## Environment variable
|
||||
echo -n $LD_LIBRARY_PATH > /etc/container_environment/LD_LIBRARY_PATH
|
||||
8
build/scripts/lighttpd-php.sh
Normal file
8
build/scripts/lighttpd-php.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
source /build/config
|
||||
set -x
|
||||
|
||||
## Enable configuration PHP in Lighttpd
|
||||
ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-enabled/10-fastcgi.conf
|
||||
ln -s /etc/lighttpd/conf-available/15-fastcgi-php.conf /etc/lighttpd/conf-enabled/15-fastcgi-php.conf
|
||||
18
build/scripts/lighttpd.sh
Normal file
18
build/scripts/lighttpd.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
source /build/config
|
||||
set -x
|
||||
|
||||
## Lighthttpd
|
||||
apt_get_install_permanent lighttpd
|
||||
|
||||
## Environment
|
||||
export_env LIGHTTPD_CONFIG /etc/lighttpd/lighttpd.conf
|
||||
export_env LIGHTTPD_DOMAINS /host/etc/lighttpd
|
||||
export_env LIGHTTPD_LOG /host/var/log/lighttpd/error.log
|
||||
export_env LIGHTTPD_DATA /host/var/www/global
|
||||
|
||||
## Configuration
|
||||
sed -i "s,^\(server.errorlog\s*=\s*\).*$,\1\"$LIGHTTPD_LOG\"," $LIGHTTPD_CONFIG
|
||||
sed -i "s,^\(server.document-root\s*=\s*\).*$,\1\"$LIGHTTPD_DATA\"," $LIGHTTPD_CONFIG
|
||||
echo "include_shell \"cat $LIGHTTPD_DOMAINS/*.conf\"" >> $LIGHTTPD_CONFIG
|
||||
19
build/scripts/mysql.sh
Normal file
19
build/scripts/mysql.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
source /build/config
|
||||
set -x
|
||||
|
||||
## MySQL
|
||||
debconf-set-selections <<< 'mysql-server mysql-server/root_password password dummy'
|
||||
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password dummy'
|
||||
apt_get_install_permanent mysql-server
|
||||
|
||||
## Environment
|
||||
export_env MYSQL_CONFIG /etc/mysql/my.cnf
|
||||
export_env MYSQL_LOG /host/var/log/mysql/error.log
|
||||
export_env MYSQL_DATA /host/var/lib/mysql
|
||||
|
||||
## Configuration
|
||||
sed -i "s,^\(log_error\s*=\s*\).*$,\1$MYSQL_LOG," $MYSQL_CONFIG
|
||||
sed -i "s,^\(datadir\s*=\s*\).*$,\1$MYSQL_DATA," $MYSQL_CONFIG
|
||||
sed -i "s,^\(bind-address\s*=\s*\).*$,\10.0.0.0," $MYSQL_CONFIG
|
||||
27
build/scripts/php.sh
Normal file
27
build/scripts/php.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
source /build/config
|
||||
set -x
|
||||
|
||||
## Environment
|
||||
export_env PHP_VERSION 5.6.4
|
||||
export_env PHP_CONFIG /usr/local/lib/php.ini
|
||||
export_env PHP_TIMEZONE Europe/Amsterdam
|
||||
|
||||
## PHP
|
||||
apt_get_install_temporary gcc make
|
||||
cd /opt
|
||||
#wget http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_3.2.54-2_amd64.deb
|
||||
#dpkg -i linux-libc-dev_3.2.54-2_amd64.deb
|
||||
apt_get_install_permanent libxml2-dev libcurl4-openssl-dev libbz2-dev libjpeg-dev libpng12-dev libmcrypt-dev
|
||||
wget http://uk1.php.net/get/php-$PHP_VERSION.tar.gz/from/this/mirror -O php-$PHP_VERSION.tar.gz && \
|
||||
tar xzf php-$PHP_VERSION.tar.gz && \
|
||||
cd php-$PHP_VERSION
|
||||
./configure --enable-calendar --enable-bcmath --with-bz2 --enable-ctype --without-gdbm --with-iconv --enable-exif --enable-ftp --with-gettext --enable-mbstring --enable-sockets --with-zlib --enable-soap --enable-zip --with-mhash --with-curl --with-gd --with-mysql --with-jpeg-dir --with-openssl --with-mysqli --with-mcrypt
|
||||
make
|
||||
make install
|
||||
|
||||
## Configuration
|
||||
cp /opt/php-$PHP_VERSION/php.ini-production $PHP_CONFIG
|
||||
sed -i "s,^;\(date\.timezone\s*=\s*\)$,\1 $PHP_TIMEZONE," $PHP_CONFIG
|
||||
ln -s /usr/local/bin/php-cgi /usr/bin/php-cgi
|
||||
@@ -30,11 +30,15 @@ ln -sf /bin/true /sbin/initctl
|
||||
dpkg-divert --local --rename --add /usr/bin/ischroot
|
||||
ln -sf /bin/true /usr/bin/ischroot
|
||||
|
||||
## Fix known issue with user accounts
|
||||
## https://github.com/docker/docker/issues/6345#issuecomment-49245365
|
||||
ln -sf /bin/true /usr/bin/chfn
|
||||
|
||||
## Install HTTPS support for APT
|
||||
apt_get_install_permanent apt-transport-https
|
||||
|
||||
## Upgrade all packages
|
||||
#apt-get dist-upgrade -y --no-install-recommends
|
||||
apt-get dist-upgrade -y --no-install-recommends
|
||||
|
||||
## Fix locale
|
||||
apt_get_install_permanent language-pack-en
|
||||
|
||||
@@ -4,7 +4,8 @@ source /build/config
|
||||
set -x
|
||||
|
||||
## Often used tools
|
||||
apt_get_install_temporary curl python-pip git inetutils-ping telnet
|
||||
apt_get_install_permanent curl python-pip git
|
||||
apt_get_install_temporary inetutils-ping telnet
|
||||
|
||||
## Often used python modules
|
||||
pip install argparse
|
||||
|
||||
Reference in New Issue
Block a user