Update Dockerfile to use Alpine Linux (#169)

* Change base image to Alpine 3.11.3
* Use multi-stage build (reducing size from 276 MB to 9.5 MB)
* Change Makefile to build with -O3 instead of -O0 -ggdb
master
Jessie Murray 5 years ago committed by GitHub
parent 79c13ba18a
commit a077c98fc2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,14 +1,19 @@
FROM debian:jessie
FROM alpine:3.11.3 AS stage
MAINTAINER Nicolas Favre-Felix <n.favrefelix@gmail.com>
RUN apt-get -y update && apt-get -y upgrade && apt-get -y --force-yes install wget make gcc libevent-dev libmsgpack-dev redis-server
RUN apk update && apk add wget make gcc libevent-dev msgpack-c-dev musl-dev bsd-compat-headers
RUN wget https://github.com/nicolasff/webdis/archive/0.1.7.tar.gz -O webdis-0.1.7.tar.gz
RUN tar -xvzf webdis-0.1.7.tar.gz
RUN sed -i -e 's/-O0 -ggdb/-O3/g' ./webdis-0.1.7/Makefile
RUN cd webdis-0.1.7 && make && make install && cd ..
RUN rm -rf webdis-0.1.7 webdis-0.1.7.tag.gz
RUN apt-get remove -y wget make gcc libevent-dev libmsgpack-dev
RUN sed -i -e 's/"daemonize":.*true,/"daemonize": false,/g' /etc/webdis.prod.json
CMD /etc/init.d/redis-server start && /usr/local/bin/webdis /etc/webdis.prod.json
# main image
FROM alpine:3.11.3
RUN apk update && apk add libevent msgpack-c redis
COPY --from=stage /usr/local/bin/webdis /usr/local/bin/
COPY --from=stage /etc/webdis.prod.json /etc/webdis.prod.json
RUN echo "daemonize yes" >> /etc/redis.conf
CMD /usr/bin/redis-server /etc/redis.conf && /usr/local/bin/webdis /etc/webdis.prod.json
EXPOSE 7379

Loading…
Cancel
Save