The util-linux-dev package on Alpine Linux provides the libuuid.so library and thus it must not be removed.
		
			
				
	
	
		
			54 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# This Dockerfile builds an image for MariaDB MaxScale:
 | 
						|
# https://mariadb.com/products/technology/maxscale
 | 
						|
# The example configuration file maxscale.cnf should be in the build directory
 | 
						|
# when building the image.
 | 
						|
 | 
						|
FROM alpine:latest
 | 
						|
 | 
						|
# Packages required for building MaxScale and Avro-C
 | 
						|
ARG DEPENDENCIES_PKGS="bash bison cmake curl flex gcc git gnutls gnutls-dev g++ \
 | 
						|
jansson jansson-dev libedit libedit-dev libgcrypt libgcrypt-dev libstdc++ lua \
 | 
						|
lua-dev make ncurses ncurses-dev openssl openssl-dev perl sqlite sqlite-dev \
 | 
						|
sqlite-libs tcl-dev util-linux-dev xz xz-dev"
 | 
						|
 | 
						|
# Packages that can be removed after build
 | 
						|
ARG REM_PKGS="bison bash cmake flex gcc git gnutls-dev g++ jansson-dev \
 | 
						|
libedit-dev libgcrypt-dev lua-dev make ncurses-dev openssl-dev perl sqlite-dev \
 | 
						|
tcl-dev xz-dev"
 | 
						|
 | 
						|
# MaxScale-specific parameters
 | 
						|
ARG MS_DIR=/MaxScale_workdir
 | 
						|
ARG MS_CMAKE_PARS="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 | 
						|
-DWITH_SCRIPTS=N -DTARGET_COMPONENT=all"
 | 
						|
ARG MS_BRANCH=develop
 | 
						|
ARG MS_REPO=https://github.com/mariadb-corporation/MaxScale.git
 | 
						|
 | 
						|
# Avro-specific parameters
 | 
						|
ARG AV_DIR=/Avro_workdir
 | 
						|
ARG AV_PREF=avro-c-1.8.2
 | 
						|
ARG AV_ARCH=$AV_PREF.tar.gz
 | 
						|
ARG AV_URL=ftp://ftp.funet.fi/pub/mirrors/apache.org/avro/avro-1.8.2/c/$AV_ARCH
 | 
						|
ARG AV_CMAKE_PARS="-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo \
 | 
						|
-DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC"
 | 
						|
 | 
						|
RUN apk -U add $DEPENDENCIES_PKGS && \
 | 
						|
    mkdir $MS_DIR && mkdir $AV_DIR && mkdir $MS_DIR/Build && mkdir $AV_DIR/Build && \
 | 
						|
    cd $AV_DIR && \
 | 
						|
# Download Avro-C, build and install
 | 
						|
    curl --output $AV_ARCH $AV_URL && \
 | 
						|
    tar -zxvf $AV_ARCH && cd Build && \
 | 
						|
    cmake $AV_CMAKE_PARS ../$AV_PREF && \
 | 
						|
    make install && \
 | 
						|
    cd $MS_DIR && \
 | 
						|
# Download MaxScale, build and install
 | 
						|
    git clone --depth 1 --branch $MS_BRANCH $MS_REPO && cd Build && \
 | 
						|
    cmake $MS_CMAKE_PARS ../MaxScale && \
 | 
						|
    make install && (./postinst || true) && \
 | 
						|
# Remove unneeded packages and work directories
 | 
						|
    apk del $REM_PKGS && \
 | 
						|
    cd / && rm -rf $MS_DIR $AV_DIR
 | 
						|
 | 
						|
COPY ./maxscale.cnf /etc/
 | 
						|
ENTRYPOINT ["maxscale", "-d"]
 | 
						|
CMD ["-lstdout"]
 |