Switch to git pre-commit hook
This commit is contained in:
		
							parent
							
								
									7214ce2766
								
							
						
					
					
						commit
						ddece179e0
					
				|  | @ -1,2 +0,0 @@ | ||||||
| alpine/ |  | ||||||
| centos/ |  | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | FROM alpine:3.12 | ||||||
|  | 
 | ||||||
|  | RUN apk add --no-cache \ | ||||||
|  | 		gmp-dev | ||||||
|  | 
 | ||||||
|  | # skip installing gem documentation | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	mkdir -p /usr/local/etc; \ | ||||||
|  | 	{ \ | ||||||
|  | 		echo 'install: --no-document'; \ | ||||||
|  | 		echo 'update: --no-document'; \ | ||||||
|  | 	} >> /usr/local/etc/gemrc | ||||||
|  | 
 | ||||||
|  | ENV LANG C.UTF-8 | ||||||
|  | 
 | ||||||
|  | # some of ruby's build scripts are written in ruby | ||||||
|  | #   we purge system ruby later to make sure our final image uses what we just built | ||||||
|  | # readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	\ | ||||||
|  | 	apk add --no-cache --virtual .ruby-builddeps \ | ||||||
|  | 		autoconf \ | ||||||
|  | 		bison \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		bzip2-dev \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		coreutils \ | ||||||
|  | 		dpkg-dev dpkg \ | ||||||
|  | 		gcc \ | ||||||
|  | 		gdbm-dev \ | ||||||
|  | 		glib-dev \ | ||||||
|  | 		libc-dev \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		libxml2-dev \ | ||||||
|  | 		libxslt-dev \ | ||||||
|  | 		linux-headers \ | ||||||
|  | 		make \ | ||||||
|  | 		ncurses-dev \ | ||||||
|  | 		openssl \ | ||||||
|  | 		openssl-dev \ | ||||||
|  | 		patch \ | ||||||
|  | 		procps \ | ||||||
|  | 		readline-dev \ | ||||||
|  | 		ruby \ | ||||||
|  | 		tar \ | ||||||
|  | 		xz \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	\ | ||||||
|  | 	wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.xz"; \ | ||||||
|  | 	\ | ||||||
|  | 	mkdir -p /usr/src/ruby; \ | ||||||
|  | 	tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; \ | ||||||
|  | 	rm ruby.tar.xz; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /usr/src/ruby; \ | ||||||
|  | 	\ | ||||||
|  | # https://github.com/docker-library/ruby/issues/196 | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) | ||||||
|  | 	wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ | ||||||
|  | 	echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ | ||||||
|  | 	patch -p1 -i thread-stack-fix.patch; \ | ||||||
|  | 	rm thread-stack-fix.patch; \ | ||||||
|  | 	\ | ||||||
|  | # hack in "ENABLE_PATH_CHECK" disabling to suppress: | ||||||
|  | #   warning: Insecure world writable dir | ||||||
|  | 	{ \ | ||||||
|  | 		echo '#define ENABLE_PATH_CHECK 0'; \ | ||||||
|  | 		echo; \ | ||||||
|  | 		cat file.c; \ | ||||||
|  | 	} > file.c.new; \ | ||||||
|  | 	mv file.c.new file.c; \ | ||||||
|  | 	\ | ||||||
|  | 	autoconf; \ | ||||||
|  | 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ | ||||||
|  | # the configure script does not detect isnan/isinf as macros | ||||||
|  | 	export ac_cv_func_isnan=yes ac_cv_func_isinf=yes; \ | ||||||
|  | 	./configure \ | ||||||
|  | 		--build="$gnuArch" \ | ||||||
|  | 		--disable-install-doc \ | ||||||
|  | 		--enable-shared \ | ||||||
|  | 	; \ | ||||||
|  | 	make -j "$(nproc)"; \ | ||||||
|  | 	make install; \ | ||||||
|  | 	\ | ||||||
|  | 	runDeps="$( \ | ||||||
|  | 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | ||||||
|  | 			| tr ',' '\n' \ | ||||||
|  | 			| sort -u \ | ||||||
|  | 			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | ||||||
|  | 	)"; \ | ||||||
|  | 	apk add --no-network --virtual .ruby-rundeps \ | ||||||
|  | 		$runDeps \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		procps \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	apk del --no-network .ruby-builddeps; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /; \ | ||||||
|  | 	rm -r /usr/src/ruby; \ | ||||||
|  | # verify we have no "ruby" packages installed | ||||||
|  | 	! apk --no-network list --installed \ | ||||||
|  | 		| grep -v '^[.]ruby-rundeps' \ | ||||||
|  | 		| grep -i ruby \ | ||||||
|  | 	; \ | ||||||
|  | 	[ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ | ||||||
|  | # rough smoke test | ||||||
|  | 	ruby --version; \ | ||||||
|  | 	gem --version; \ | ||||||
|  | 	bundle --version | ||||||
|  | 
 | ||||||
|  | # don't create ".bundle" in all our apps | ||||||
|  | ENV GEM_HOME /usr/local/bundle | ||||||
|  | ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ | ||||||
|  | 	BUNDLE_APP_CONFIG="$GEM_HOME" | ||||||
|  | ENV PATH $GEM_HOME/bin:$PATH | ||||||
|  | # adjust permissions of a few directories for running "gem install" as an arbitrary user | ||||||
|  | RUN mkdir -p "$GEM_HOME" && chmod 777 "$GEM_HOME" | ||||||
|  | 
 | ||||||
|  | # Packages installed to the 'world' and used in applications | ||||||
|  | RUN apk -q --update --no-cache add \ | ||||||
|  |   bc \ | ||||||
|  |   build-base \ | ||||||
|  |   less \ | ||||||
|  |   git \ | ||||||
|  |   openssh \ | ||||||
|  |   bash \ | ||||||
|  |   curl \ | ||||||
|  |   curl-dev \ | ||||||
|  |   jq \ | ||||||
|  |   netcat-openbsd \ | ||||||
|  |   postgresql-client \ | ||||||
|  |   postgresql-dev \ | ||||||
|  |   libxml2 \ | ||||||
|  |   libxml2-dev \ | ||||||
|  |   libxslt \ | ||||||
|  |   libxslt-dev \ | ||||||
|  |   nodejs \ | ||||||
|  |   graphviz \ | ||||||
|  |   yarn | ||||||
|  | 
 | ||||||
|  | CMD [ "irb" ] | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | FROM alpine:3.12 | ||||||
|  | 
 | ||||||
|  | RUN apk add --no-cache \ | ||||||
|  | 		gmp-dev | ||||||
|  | 
 | ||||||
|  | # skip installing gem documentation | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	mkdir -p /usr/local/etc; \ | ||||||
|  | 	{ \ | ||||||
|  | 		echo 'install: --no-document'; \ | ||||||
|  | 		echo 'update: --no-document'; \ | ||||||
|  | 	} >> /usr/local/etc/gemrc | ||||||
|  | 
 | ||||||
|  | ENV LANG C.UTF-8 | ||||||
|  | 
 | ||||||
|  | # some of ruby's build scripts are written in ruby | ||||||
|  | #   we purge system ruby later to make sure our final image uses what we just built | ||||||
|  | # readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	\ | ||||||
|  | 	apk add --no-cache --virtual .ruby-builddeps \ | ||||||
|  | 		autoconf \ | ||||||
|  | 		bison \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		bzip2-dev \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		coreutils \ | ||||||
|  | 		dpkg-dev dpkg \ | ||||||
|  | 		gcc \ | ||||||
|  | 		gdbm-dev \ | ||||||
|  | 		glib-dev \ | ||||||
|  | 		libc-dev \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		libxml2-dev \ | ||||||
|  | 		libxslt-dev \ | ||||||
|  | 		linux-headers \ | ||||||
|  | 		make \ | ||||||
|  | 		ncurses-dev \ | ||||||
|  | 		openssl \ | ||||||
|  | 		openssl-dev \ | ||||||
|  | 		patch \ | ||||||
|  | 		procps \ | ||||||
|  | 		readline-dev \ | ||||||
|  | 		ruby \ | ||||||
|  | 		tar \ | ||||||
|  | 		xz \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	\ | ||||||
|  | 	wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.2.tar.xz"; \ | ||||||
|  | 	\ | ||||||
|  | 	mkdir -p /usr/src/ruby; \ | ||||||
|  | 	tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; \ | ||||||
|  | 	rm ruby.tar.xz; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /usr/src/ruby; \ | ||||||
|  | 	\ | ||||||
|  | # https://github.com/docker-library/ruby/issues/196 | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) | ||||||
|  | 	wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ | ||||||
|  | 	echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ | ||||||
|  | 	patch -p1 -i thread-stack-fix.patch; \ | ||||||
|  | 	rm thread-stack-fix.patch; \ | ||||||
|  | 	\ | ||||||
|  | # hack in "ENABLE_PATH_CHECK" disabling to suppress: | ||||||
|  | #   warning: Insecure world writable dir | ||||||
|  | 	{ \ | ||||||
|  | 		echo '#define ENABLE_PATH_CHECK 0'; \ | ||||||
|  | 		echo; \ | ||||||
|  | 		cat file.c; \ | ||||||
|  | 	} > file.c.new; \ | ||||||
|  | 	mv file.c.new file.c; \ | ||||||
|  | 	\ | ||||||
|  | 	autoconf; \ | ||||||
|  | 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ | ||||||
|  | # the configure script does not detect isnan/isinf as macros | ||||||
|  | 	export ac_cv_func_isnan=yes ac_cv_func_isinf=yes; \ | ||||||
|  | 	./configure \ | ||||||
|  | 		--build="$gnuArch" \ | ||||||
|  | 		--disable-install-doc \ | ||||||
|  | 		--enable-shared \ | ||||||
|  | 	; \ | ||||||
|  | 	make -j "$(nproc)"; \ | ||||||
|  | 	make install; \ | ||||||
|  | 	\ | ||||||
|  | 	runDeps="$( \ | ||||||
|  | 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | ||||||
|  | 			| tr ',' '\n' \ | ||||||
|  | 			| sort -u \ | ||||||
|  | 			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | ||||||
|  | 	)"; \ | ||||||
|  | 	apk add --no-network --virtual .ruby-rundeps \ | ||||||
|  | 		$runDeps \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		procps \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	apk del --no-network .ruby-builddeps; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /; \ | ||||||
|  | 	rm -r /usr/src/ruby; \ | ||||||
|  | # verify we have no "ruby" packages installed | ||||||
|  | 	! apk --no-network list --installed \ | ||||||
|  | 		| grep -v '^[.]ruby-rundeps' \ | ||||||
|  | 		| grep -i ruby \ | ||||||
|  | 	; \ | ||||||
|  | 	[ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ | ||||||
|  | # rough smoke test | ||||||
|  | 	ruby --version; \ | ||||||
|  | 	gem --version; \ | ||||||
|  | 	bundle --version | ||||||
|  | 
 | ||||||
|  | # don't create ".bundle" in all our apps | ||||||
|  | ENV GEM_HOME /usr/local/bundle | ||||||
|  | ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ | ||||||
|  | 	BUNDLE_APP_CONFIG="$GEM_HOME" | ||||||
|  | ENV PATH $GEM_HOME/bin:$PATH | ||||||
|  | # adjust permissions of a few directories for running "gem install" as an arbitrary user | ||||||
|  | RUN mkdir -p "$GEM_HOME" && chmod 777 "$GEM_HOME" | ||||||
|  | 
 | ||||||
|  | # Packages installed to the 'world' and used in applications | ||||||
|  | RUN apk -q --update --no-cache add \ | ||||||
|  |   bc \ | ||||||
|  |   build-base \ | ||||||
|  |   less \ | ||||||
|  |   git \ | ||||||
|  |   openssh \ | ||||||
|  |   bash \ | ||||||
|  |   curl \ | ||||||
|  |   curl-dev \ | ||||||
|  |   jq \ | ||||||
|  |   netcat-openbsd \ | ||||||
|  |   postgresql-client \ | ||||||
|  |   postgresql-dev \ | ||||||
|  |   libxml2 \ | ||||||
|  |   libxml2-dev \ | ||||||
|  |   libxslt \ | ||||||
|  |   libxslt-dev \ | ||||||
|  |   nodejs \ | ||||||
|  |   graphviz \ | ||||||
|  |   yarn | ||||||
|  | 
 | ||||||
|  | CMD [ "irb" ] | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | FROM alpine:3.12 | ||||||
|  | 
 | ||||||
|  | RUN apk add --no-cache \ | ||||||
|  | 		gmp-dev | ||||||
|  | 
 | ||||||
|  | # skip installing gem documentation | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	mkdir -p /usr/local/etc; \ | ||||||
|  | 	{ \ | ||||||
|  | 		echo 'install: --no-document'; \ | ||||||
|  | 		echo 'update: --no-document'; \ | ||||||
|  | 	} >> /usr/local/etc/gemrc | ||||||
|  | 
 | ||||||
|  | ENV LANG C.UTF-8 | ||||||
|  | 
 | ||||||
|  | # some of ruby's build scripts are written in ruby | ||||||
|  | #   we purge system ruby later to make sure our final image uses what we just built | ||||||
|  | # readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	\ | ||||||
|  | 	apk add --no-cache --virtual .ruby-builddeps \ | ||||||
|  | 		autoconf \ | ||||||
|  | 		bison \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		bzip2-dev \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		coreutils \ | ||||||
|  | 		dpkg-dev dpkg \ | ||||||
|  | 		gcc \ | ||||||
|  | 		gdbm-dev \ | ||||||
|  | 		glib-dev \ | ||||||
|  | 		libc-dev \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		libxml2-dev \ | ||||||
|  | 		libxslt-dev \ | ||||||
|  | 		linux-headers \ | ||||||
|  | 		make \ | ||||||
|  | 		ncurses-dev \ | ||||||
|  | 		openssl \ | ||||||
|  | 		openssl-dev \ | ||||||
|  | 		patch \ | ||||||
|  | 		procps \ | ||||||
|  | 		readline-dev \ | ||||||
|  | 		ruby \ | ||||||
|  | 		tar \ | ||||||
|  | 		xz \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	\ | ||||||
|  | 	wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.xz"; \ | ||||||
|  | 	\ | ||||||
|  | 	mkdir -p /usr/src/ruby; \ | ||||||
|  | 	tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; \ | ||||||
|  | 	rm ruby.tar.xz; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /usr/src/ruby; \ | ||||||
|  | 	\ | ||||||
|  | # https://github.com/docker-library/ruby/issues/196 | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) | ||||||
|  | 	wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ | ||||||
|  | 	echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ | ||||||
|  | 	patch -p1 -i thread-stack-fix.patch; \ | ||||||
|  | 	rm thread-stack-fix.patch; \ | ||||||
|  | 	\ | ||||||
|  | # hack in "ENABLE_PATH_CHECK" disabling to suppress: | ||||||
|  | #   warning: Insecure world writable dir | ||||||
|  | 	{ \ | ||||||
|  | 		echo '#define ENABLE_PATH_CHECK 0'; \ | ||||||
|  | 		echo; \ | ||||||
|  | 		cat file.c; \ | ||||||
|  | 	} > file.c.new; \ | ||||||
|  | 	mv file.c.new file.c; \ | ||||||
|  | 	\ | ||||||
|  | 	autoconf; \ | ||||||
|  | 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ | ||||||
|  | # the configure script does not detect isnan/isinf as macros | ||||||
|  | 	export ac_cv_func_isnan=yes ac_cv_func_isinf=yes; \ | ||||||
|  | 	./configure \ | ||||||
|  | 		--build="$gnuArch" \ | ||||||
|  | 		--disable-install-doc \ | ||||||
|  | 		--enable-shared \ | ||||||
|  | 	; \ | ||||||
|  | 	make -j "$(nproc)"; \ | ||||||
|  | 	make install; \ | ||||||
|  | 	\ | ||||||
|  | 	runDeps="$( \ | ||||||
|  | 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | ||||||
|  | 			| tr ',' '\n' \ | ||||||
|  | 			| sort -u \ | ||||||
|  | 			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | ||||||
|  | 	)"; \ | ||||||
|  | 	apk add --no-network --virtual .ruby-rundeps \ | ||||||
|  | 		$runDeps \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		procps \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	apk del --no-network .ruby-builddeps; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /; \ | ||||||
|  | 	rm -r /usr/src/ruby; \ | ||||||
|  | # verify we have no "ruby" packages installed | ||||||
|  | 	! apk --no-network list --installed \ | ||||||
|  | 		| grep -v '^[.]ruby-rundeps' \ | ||||||
|  | 		| grep -i ruby \ | ||||||
|  | 	; \ | ||||||
|  | 	[ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ | ||||||
|  | # rough smoke test | ||||||
|  | 	ruby --version; \ | ||||||
|  | 	gem --version; \ | ||||||
|  | 	bundle --version | ||||||
|  | 
 | ||||||
|  | # don't create ".bundle" in all our apps | ||||||
|  | ENV GEM_HOME /usr/local/bundle | ||||||
|  | ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ | ||||||
|  | 	BUNDLE_APP_CONFIG="$GEM_HOME" | ||||||
|  | ENV PATH $GEM_HOME/bin:$PATH | ||||||
|  | # adjust permissions of a few directories for running "gem install" as an arbitrary user | ||||||
|  | RUN mkdir -p "$GEM_HOME" && chmod 777 "$GEM_HOME" | ||||||
|  | 
 | ||||||
|  | # Packages installed to the 'world' and used in applications | ||||||
|  | RUN apk -q --update --no-cache add \ | ||||||
|  |   bc \ | ||||||
|  |   build-base \ | ||||||
|  |   less \ | ||||||
|  |   git \ | ||||||
|  |   openssh \ | ||||||
|  |   bash \ | ||||||
|  |   curl \ | ||||||
|  |   curl-dev \ | ||||||
|  |   jq \ | ||||||
|  |   netcat-openbsd \ | ||||||
|  |   postgresql-client \ | ||||||
|  |   postgresql-dev \ | ||||||
|  |   libxml2 \ | ||||||
|  |   libxml2-dev \ | ||||||
|  |   libxslt \ | ||||||
|  |   libxslt-dev \ | ||||||
|  |   nodejs \ | ||||||
|  |   graphviz \ | ||||||
|  |   yarn | ||||||
|  | 
 | ||||||
|  | CMD [ "irb" ] | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | FROM alpine:3.12 | ||||||
|  | 
 | ||||||
|  | RUN apk add --no-cache \ | ||||||
|  | 		gmp-dev | ||||||
|  | 
 | ||||||
|  | # skip installing gem documentation | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	mkdir -p /usr/local/etc; \ | ||||||
|  | 	{ \ | ||||||
|  | 		echo 'install: --no-document'; \ | ||||||
|  | 		echo 'update: --no-document'; \ | ||||||
|  | 	} >> /usr/local/etc/gemrc | ||||||
|  | 
 | ||||||
|  | ENV LANG C.UTF-8 | ||||||
|  | 
 | ||||||
|  | # some of ruby's build scripts are written in ruby | ||||||
|  | #   we purge system ruby later to make sure our final image uses what we just built | ||||||
|  | # readline-dev vs libedit-dev: https://bugs.ruby-lang.org/issues/11869 and https://github.com/docker-library/ruby/issues/75 | ||||||
|  | RUN set -eux; \ | ||||||
|  | 	\ | ||||||
|  | 	apk add --no-cache --virtual .ruby-builddeps \ | ||||||
|  | 		autoconf \ | ||||||
|  | 		bison \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		bzip2-dev \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		coreutils \ | ||||||
|  | 		dpkg-dev dpkg \ | ||||||
|  | 		gcc \ | ||||||
|  | 		gdbm-dev \ | ||||||
|  | 		glib-dev \ | ||||||
|  | 		libc-dev \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		libxml2-dev \ | ||||||
|  | 		libxslt-dev \ | ||||||
|  | 		linux-headers \ | ||||||
|  | 		make \ | ||||||
|  | 		ncurses-dev \ | ||||||
|  | 		openssl \ | ||||||
|  | 		openssl-dev \ | ||||||
|  | 		patch \ | ||||||
|  | 		procps \ | ||||||
|  | 		readline-dev \ | ||||||
|  | 		ruby \ | ||||||
|  | 		tar \ | ||||||
|  | 		xz \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	\ | ||||||
|  | 	wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.5.tar.xz"; \ | ||||||
|  | 	\ | ||||||
|  | 	mkdir -p /usr/src/ruby; \ | ||||||
|  | 	tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; \ | ||||||
|  | 	rm ruby.tar.xz; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /usr/src/ruby; \ | ||||||
|  | 	\ | ||||||
|  | # https://github.com/docker-library/ruby/issues/196 | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-13 (patch source) | ||||||
|  | # https://bugs.ruby-lang.org/issues/14387#note-16 ("Therefore ncopa's patch looks good for me in general." -- only breaks glibc which doesn't matter here) | ||||||
|  | 	wget -O 'thread-stack-fix.patch' 'https://bugs.ruby-lang.org/attachments/download/7081/0001-thread_pthread.c-make-get_main_stack-portable-on-lin.patch'; \ | ||||||
|  | 	echo '3ab628a51d92fdf0d2b5835e93564857aea73e0c1de00313864a94a6255cb645 *thread-stack-fix.patch' | sha256sum --check --strict; \ | ||||||
|  | 	patch -p1 -i thread-stack-fix.patch; \ | ||||||
|  | 	rm thread-stack-fix.patch; \ | ||||||
|  | 	\ | ||||||
|  | # hack in "ENABLE_PATH_CHECK" disabling to suppress: | ||||||
|  | #   warning: Insecure world writable dir | ||||||
|  | 	{ \ | ||||||
|  | 		echo '#define ENABLE_PATH_CHECK 0'; \ | ||||||
|  | 		echo; \ | ||||||
|  | 		cat file.c; \ | ||||||
|  | 	} > file.c.new; \ | ||||||
|  | 	mv file.c.new file.c; \ | ||||||
|  | 	\ | ||||||
|  | 	autoconf; \ | ||||||
|  | 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ | ||||||
|  | # the configure script does not detect isnan/isinf as macros | ||||||
|  | 	export ac_cv_func_isnan=yes ac_cv_func_isinf=yes; \ | ||||||
|  | 	./configure \ | ||||||
|  | 		--build="$gnuArch" \ | ||||||
|  | 		--disable-install-doc \ | ||||||
|  | 		--enable-shared \ | ||||||
|  | 	; \ | ||||||
|  | 	make -j "$(nproc)"; \ | ||||||
|  | 	make install; \ | ||||||
|  | 	\ | ||||||
|  | 	runDeps="$( \ | ||||||
|  | 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \ | ||||||
|  | 			| tr ',' '\n' \ | ||||||
|  | 			| sort -u \ | ||||||
|  | 			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ | ||||||
|  | 	)"; \ | ||||||
|  | 	apk add --no-network --virtual .ruby-rundeps \ | ||||||
|  | 		$runDeps \ | ||||||
|  | 		bzip2 \ | ||||||
|  | 		ca-certificates \ | ||||||
|  | 		libffi-dev \ | ||||||
|  | 		procps \ | ||||||
|  | 		yaml-dev \ | ||||||
|  | 		zlib-dev \ | ||||||
|  | 	; \ | ||||||
|  | 	apk del --no-network .ruby-builddeps; \ | ||||||
|  | 	\ | ||||||
|  | 	cd /; \ | ||||||
|  | 	rm -r /usr/src/ruby; \ | ||||||
|  | # verify we have no "ruby" packages installed | ||||||
|  | 	! apk --no-network list --installed \ | ||||||
|  | 		| grep -v '^[.]ruby-rundeps' \ | ||||||
|  | 		| grep -i ruby \ | ||||||
|  | 	; \ | ||||||
|  | 	[ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; \ | ||||||
|  | # rough smoke test | ||||||
|  | 	ruby --version; \ | ||||||
|  | 	gem --version; \ | ||||||
|  | 	bundle --version | ||||||
|  | 
 | ||||||
|  | # don't create ".bundle" in all our apps | ||||||
|  | ENV GEM_HOME /usr/local/bundle | ||||||
|  | ENV BUNDLE_SILENCE_ROOT_WARNING=1 \ | ||||||
|  | 	BUNDLE_APP_CONFIG="$GEM_HOME" | ||||||
|  | ENV PATH $GEM_HOME/bin:$PATH | ||||||
|  | # adjust permissions of a few directories for running "gem install" as an arbitrary user | ||||||
|  | RUN mkdir -p "$GEM_HOME" && chmod 777 "$GEM_HOME" | ||||||
|  | 
 | ||||||
|  | # Packages installed to the 'world' and used in applications | ||||||
|  | RUN apk -q --update --no-cache add \ | ||||||
|  |   bc \ | ||||||
|  |   build-base \ | ||||||
|  |   less \ | ||||||
|  |   git \ | ||||||
|  |   openssh \ | ||||||
|  |   bash \ | ||||||
|  |   curl \ | ||||||
|  |   curl-dev \ | ||||||
|  |   jq \ | ||||||
|  |   netcat-openbsd \ | ||||||
|  |   postgresql-client \ | ||||||
|  |   postgresql-dev \ | ||||||
|  |   libxml2 \ | ||||||
|  |   libxml2-dev \ | ||||||
|  |   libxslt \ | ||||||
|  |   libxslt-dev \ | ||||||
|  |   nodejs \ | ||||||
|  |   graphviz \ | ||||||
|  |   yarn | ||||||
|  | 
 | ||||||
|  | CMD [ "irb" ] | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | FROM centos:7 | ||||||
|  | 
 | ||||||
|  | RUN yum install -q -y \ | ||||||
|  | 	https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ | ||||||
|  | 	epel-release | ||||||
|  | 
 | ||||||
|  | # Install basic deps | ||||||
|  | RUN yum install -q -y \ | ||||||
|  |   bash \ | ||||||
|  |   bc \ | ||||||
|  |   cups \ | ||||||
|  |   curl \ | ||||||
|  |   curl \ | ||||||
|  |   epel-release \ | ||||||
|  |   fontconfig \ | ||||||
|  |   git \ | ||||||
|  |   git-core \ | ||||||
|  |   graphviz \ | ||||||
|  |   jq \ | ||||||
|  |   less \ | ||||||
|  |   nc \ | ||||||
|  |   openssl \ | ||||||
|  |   postgresql11-11.7 \ | ||||||
|  |   postgresql11-devel-11.7 \ | ||||||
|  |   postgresql11-libs-11.7 \ | ||||||
|  |   ImageMagick ImageMagick-devel \ | ||||||
|  |   vim \ | ||||||
|  |   wget \ | ||||||
|  |   zip unzip \ | ||||||
|  |   xorg-x11-fonts-75dpi \ | ||||||
|  |   xorg-x11-fonts-Type1 && \ | ||||||
|  |   yum clean all | ||||||
|  | 
 | ||||||
|  | # Install specific Ruby version via RVM and set it as default | ||||||
|  | RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://get.rvm.io | bash -s stable && \ | ||||||
|  |     bash -lc 'rvm install 2.5.3;rvm alias create default 2.5.3' && \ | ||||||
|  |     ruby --version; \ | ||||||
|  |   	gem --version | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | FROM centos:7 | ||||||
|  | 
 | ||||||
|  | RUN yum install -q -y \ | ||||||
|  | 	https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ | ||||||
|  | 	epel-release | ||||||
|  | 
 | ||||||
|  | # Install basic deps | ||||||
|  | RUN yum install -q -y \ | ||||||
|  |   bash \ | ||||||
|  |   bc \ | ||||||
|  |   cups \ | ||||||
|  |   curl \ | ||||||
|  |   curl \ | ||||||
|  |   epel-release \ | ||||||
|  |   fontconfig \ | ||||||
|  |   git \ | ||||||
|  |   git-core \ | ||||||
|  |   graphviz \ | ||||||
|  |   jq \ | ||||||
|  |   less \ | ||||||
|  |   nc \ | ||||||
|  |   openssl \ | ||||||
|  |   postgresql11-11.7 \ | ||||||
|  |   postgresql11-devel-11.7 \ | ||||||
|  |   postgresql11-libs-11.7 \ | ||||||
|  |   ImageMagick ImageMagick-devel \ | ||||||
|  |   vim \ | ||||||
|  |   wget \ | ||||||
|  |   zip unzip \ | ||||||
|  |   xorg-x11-fonts-75dpi \ | ||||||
|  |   xorg-x11-fonts-Type1 && \ | ||||||
|  |   yum clean all | ||||||
|  | 
 | ||||||
|  | # Install specific Ruby version via RVM and set it as default | ||||||
|  | RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://get.rvm.io | bash -s stable && \ | ||||||
|  |     bash -lc 'rvm install 2.6.2;rvm alias create default 2.6.2' && \ | ||||||
|  |     ruby --version; \ | ||||||
|  |   	gem --version | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | FROM centos:7 | ||||||
|  | 
 | ||||||
|  | RUN yum install -q -y \ | ||||||
|  | 	https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ | ||||||
|  | 	epel-release | ||||||
|  | 
 | ||||||
|  | # Install basic deps | ||||||
|  | RUN yum install -q -y \ | ||||||
|  |   bash \ | ||||||
|  |   bc \ | ||||||
|  |   cups \ | ||||||
|  |   curl \ | ||||||
|  |   curl \ | ||||||
|  |   epel-release \ | ||||||
|  |   fontconfig \ | ||||||
|  |   git \ | ||||||
|  |   git-core \ | ||||||
|  |   graphviz \ | ||||||
|  |   jq \ | ||||||
|  |   less \ | ||||||
|  |   nc \ | ||||||
|  |   openssl \ | ||||||
|  |   postgresql11-11.7 \ | ||||||
|  |   postgresql11-devel-11.7 \ | ||||||
|  |   postgresql11-libs-11.7 \ | ||||||
|  |   ImageMagick ImageMagick-devel \ | ||||||
|  |   vim \ | ||||||
|  |   wget \ | ||||||
|  |   zip unzip \ | ||||||
|  |   xorg-x11-fonts-75dpi \ | ||||||
|  |   xorg-x11-fonts-Type1 && \ | ||||||
|  |   yum clean all | ||||||
|  | 
 | ||||||
|  | # Install specific Ruby version via RVM and set it as default | ||||||
|  | RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://get.rvm.io | bash -s stable && \ | ||||||
|  |     bash -lc 'rvm install 2.6.3;rvm alias create default 2.6.3' && \ | ||||||
|  |     ruby --version; \ | ||||||
|  |   	gem --version | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | FROM centos:7 | ||||||
|  | 
 | ||||||
|  | RUN yum install -q -y \ | ||||||
|  | 	https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm \ | ||||||
|  | 	epel-release | ||||||
|  | 
 | ||||||
|  | # Install basic deps | ||||||
|  | RUN yum install -q -y \ | ||||||
|  |   bash \ | ||||||
|  |   bc \ | ||||||
|  |   cups \ | ||||||
|  |   curl \ | ||||||
|  |   curl \ | ||||||
|  |   epel-release \ | ||||||
|  |   fontconfig \ | ||||||
|  |   git \ | ||||||
|  |   git-core \ | ||||||
|  |   graphviz \ | ||||||
|  |   jq \ | ||||||
|  |   less \ | ||||||
|  |   nc \ | ||||||
|  |   openssl \ | ||||||
|  |   postgresql11-11.7 \ | ||||||
|  |   postgresql11-devel-11.7 \ | ||||||
|  |   postgresql11-libs-11.7 \ | ||||||
|  |   ImageMagick ImageMagick-devel \ | ||||||
|  |   vim \ | ||||||
|  |   wget \ | ||||||
|  |   zip unzip \ | ||||||
|  |   xorg-x11-fonts-75dpi \ | ||||||
|  |   xorg-x11-fonts-Type1 && \ | ||||||
|  |   yum clean all | ||||||
|  | 
 | ||||||
|  | # Install specific Ruby version via RVM and set it as default | ||||||
|  | RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - && \ | ||||||
|  |     curl -sSL https://get.rvm.io | bash -s stable && \ | ||||||
|  |     bash -lc 'rvm install 2.6.5;rvm alias create default 2.6.5' && \ | ||||||
|  |     ruby --version; \ | ||||||
|  |   	gem --version | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| # Script is used to generate all the necessary Dockerfiles based on the templates |  | ||||||
| 
 |  | ||||||
| declare -a ruby_versions=("2.5.3" "2.6.2" "2.6.3" "2.6.5") |  | ||||||
| declare -a distributions=("alpine:3.12" "centos:7") |  | ||||||
| 
 |  | ||||||
| for i in "${distributions[@]}" |  | ||||||
| do |  | ||||||
|   DISTRO_NAME="$(cut -d ':' -f1 <<< $i)" |  | ||||||
|   DISTRO_VERSION="$(cut -d ':' -f2 <<< $i)" |  | ||||||
| 
 |  | ||||||
|   for j in "${ruby_versions[@]}" |  | ||||||
|   do |  | ||||||
|     # E.g. ./alpine/3.11/2.5.3 |  | ||||||
|     TARGET_DIR="./$DISTRO_NAME/$DISTRO_VERSION/$j" |  | ||||||
|     RUBY_MAJOR="$(echo $j | grep --only-matching -E '[[:digit:]]+\.[[:digit:]]+')" |  | ||||||
|     mkdir --parents $TARGET_DIR |  | ||||||
|     cp ./Dockerfile.$DISTRO_NAME.template $TARGET_DIR/Dockerfile |  | ||||||
| 
 |  | ||||||
|     sed -i "s/{RUBY_VERSION}/$j/g" $TARGET_DIR/Dockerfile |  | ||||||
|     sed -i "s/{RUBY_MAJOR}/$RUBY_MAJOR/g" $TARGET_DIR/Dockerfile |  | ||||||
|     sed -i "s/{DISTRO_VERSION}/$DISTRO_VERSION/g" $TARGET_DIR/Dockerfile |  | ||||||
|   done |  | ||||||
| done |  | ||||||
		Loading…
	
		Reference in New Issue