FROM alpine:3.12 as builder ENV RESTY_VERSION=1.15.8.2 ENV RESTY_SHA256_SUM=436b4e84d547a97a18cf7a2522daf819da8087b188468946b5a89c0dd1ca5d16 RUN apk --no-cache add \ bash \ coreutils \ perl \ make \ automake \ autoconf \ gcc \ git \ curl \ lua5.1-dev \ musl-dev \ pcre-dev \ zlib-dev \ lua5.1 \ luarocks5.1 \ openssl \ openssl-dev \ pcre-dev \ zlib-dev RUN ln -s /usr/bin/aclocal-1.16 /usr/bin/aclocal-1.15 RUN ln -s /usr/bin/automake-1.16 /usr/bin/automake-1.15 RUN wget https://openresty.org/download/openresty-$RESTY_VERSION.tar.gz RUN echo "$RESTY_SHA256_SUM openresty-$RESTY_VERSION.tar.gz" | sha256sum -c - || exit 1 RUN tar xvf openresty-$RESTY_VERSION.tar.gz RUN cd openresty-$RESTY_VERSION && \ ./configure --with-pcre-jit --with-ipv6 --with-http_v2_module && \ make && \ make install ADD gin.patch /gin.patch RUN git clone https://github.com/ostinelli/gin WORKDIR /gin RUN patch -N -p1 < ../gin.patch RUN luarocks-5.1 make WORKDIR / RUN git clone https://github.com/koreader/koreader-sync-server.git FROM thallian/confd-env:latest RUN addgroup syncer RUN adduser -h /app -D -G syncer syncer COPY --from=builder /usr/local/openresty /usr/local/openresty COPY --from=builder /usr/local/share/lua/5.1 /usr/local/share/lua/5.1 COPY --from=builder /usr/local/lib/lua/5.1 /usr/local/lib/lua/5.1 COPY --from=builder /usr/local/lib/luarocks/rocks-5.1 /usr/local/lib/luarocks/rocks-5.1 COPY --from=builder /usr/local/bin/gin /usr/local/bin/gin COPY --from=builder --chown=syncer:syncer /koreader-sync-server /app/server RUN ln -s /usr/local/openresty/nginx/sbin/nginx /usr/local/bin/nginx RUN apk --no-cache add \ redis \ openssl \ libgcc \ pcre \ lua5.1 \ unzip \ zlib ADD /rootfs / ENV GIN_ENV production WORKDIR / EXPOSE 7200 VOLUME /var/lib/redis/