Skip to content

Commit dca33bd

Browse files
Trojan295vche
authored andcommitted
Lower docker image size and switch to OpenSSL in docker image (#50)
* lower docker image size and update LibreSSL in docker image to 2.9.2 * replace MAINTAINER (deprecated) instruction with LABEL * switch from LibreSSL to OpenSSL
1 parent b1dedd3 commit dca33bd

File tree

4 files changed

+32
-65
lines changed

4 files changed

+32
-65
lines changed

.dockerignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.git
2+
target
3+
docker/Dockerfile

docker/Dockerfile

+26-62
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,26 @@
1-
FROM jedisct1/base-dev-rust-nightly:94e884b63
2-
MAINTAINER Frank Denis
3-
ENV SERIAL 1
4-
5-
ENV DEBIAN_FRONTEND noninteractive
6-
7-
ENV BUILD_DEPS \
8-
autoconf \
9-
automake \
10-
libtool \
11-
file \
12-
gcc \
13-
g++ \
14-
git \
15-
libc-dev \
16-
make \
17-
pkg-config
18-
19-
RUN set -x && \
20-
apt-get install -y \
21-
$BUILD_DEPS \
22-
libsnappy-dev \
23-
--no-install-recommends && \
24-
apt-get clean && \
25-
rm -fr /tmp/* /var/tmp/*
26-
27-
ENV LIBRESSL_VERSION 2.7.0
28-
ENV LIBRESSL_SHA256 50ce6d6f88dea73a3efca62b0a9e6ca75292bdee6c9293efd6a771cfdb28cdee
29-
ENV LIBRESSL_DOWNLOAD_URL https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${LIBRESSL_VERSION}.tar.gz
30-
31-
RUN set -x && \
32-
mkdir -p /tmp/src && \
33-
cd /tmp/src && \
34-
curl -sSL $LIBRESSL_DOWNLOAD_URL -o libressl.tar.gz && \
35-
echo "${LIBRESSL_SHA256} *libressl.tar.gz" | sha256sum -c - && \
36-
tar xzf libressl.tar.gz && \
37-
rm -f libressl.tar.gz && \
38-
cd libressl-${LIBRESSL_VERSION} && \
39-
./configure --disable-shared --with-pic --disable-dependency-tracking --prefix=/opt/libressl && \
40-
make check && make install && \
41-
rm -fr /opt/libressl/share/man && \
42-
echo /opt/libressl/lib > /etc/ld.so.conf.d/libressl.conf && ldconfig && \
43-
rm -fr /tmp/*
44-
45-
ENV OPENSSL_LIB_DIR=/opt/libressl/lib
46-
ENV OPENSSL_INCLUDE_DIR=/opt/libressl/include
47-
48-
RUN set -x && \
49-
cd /tmp && \
50-
git clone https://github.com/jedisct1/flowgger.git && \
51-
cd flowgger && \
52-
cargo build --release --features='coroutines ecdh kafka' && \
53-
mkdir -p /opt/flowgger/etc /opt/flowgger/bin && \
54-
strip target/release/flowgger && \
55-
mv target/release/flowgger /opt/flowgger/bin/ && \
56-
rm -fr /tmp/flowgger
57-
58-
COPY flowgger.sh /etc/service/flowgger/run
59-
60-
EXPOSE 6514
61-
62-
ENTRYPOINT ["/sbin/my_init"]
1+
FROM rust:1.38 AS builder
2+
3+
WORKDIR /flowgger
4+
COPY . .
5+
6+
RUN apt-get update && \
7+
apt-get install -y capnproto && \
8+
cargo build --release && \
9+
strip target/release/flowgger
10+
11+
12+
FROM debian:buster-slim
13+
LABEL maintainer="Frank Denis, Damian Czaja <trojan295@gmail.com>"
14+
15+
WORKDIR /opt/flowgger
16+
17+
RUN apt-get update && \
18+
apt-get install -y libssl1.1 && \
19+
rm -rf /var/lib/apt/lists/*
20+
21+
COPY --from=builder /flowgger/target/release/flowgger /opt/flowgger/bin/flowgger
22+
COPY flowgger.toml /opt/flowgger/etc/flowgger.toml
23+
COPY docker/entrypoint.sh /
24+
25+
ENTRYPOINT ["/entrypoint.sh"]
26+
CMD ["/opt/flowgger/etc/flowgger.toml"]

docker/entrypoint.sh

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
exec /opt/flowgger/bin/flowgger $@

docker/flowgger.sh

-3
This file was deleted.

0 commit comments

Comments
 (0)