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 -ggdbmaster
parent
79c13ba18a
commit
a077c98fc2
@ -1,14 +1,19 @@
|
|||||||
FROM debian:jessie
|
FROM alpine:3.11.3 AS stage
|
||||||
MAINTAINER Nicolas Favre-Felix <n.favrefelix@gmail.com>
|
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 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 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 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
|
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
|
EXPOSE 7379
|
||||||
|
Loading…
Reference in New Issue