summaryrefslogtreecommitdiffstats
path: root/build_external/clean-install.Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'build_external/clean-install.Dockerfile')
-rw-r--r--build_external/clean-install.Dockerfile40
1 files changed, 40 insertions, 0 deletions
diff --git a/build_external/clean-install.Dockerfile b/build_external/clean-install.Dockerfile
new file mode 100644
index 00000000..0ee154e3
--- /dev/null
+++ b/build_external/clean-install.Dockerfile
@@ -0,0 +1,40 @@
+ARG DISTRO=arch
+ARG VERSION=current
+FROM netdata/package-builders:${DISTRO}${VERSION}
+
+ARG ACLK=no
+ARG EXTRA_CFLAGS
+
+COPY . /opt/netdata/source
+WORKDIR /opt/netdata/source
+
+RUN git config --global user.email "root@container"
+RUN git config --global user.name "Fake root"
+
+# RUN make distclean -> not safe if tree state changed on host since last config
+# Kill everything that is not in .gitignore preserving any fresh changes, i.e. untracked changes will be
+# deleted but local changes to tracked files will be preserved.
+RUN if git status --porcelain | grep '^[MADRC]'; then \
+ git stash && git clean -dxf && (git stash apply || true) \
+ else \
+ git clean -dxf ; \
+ fi
+
+# Not everybody is updating distclean properly - fix.
+RUN find . -name '*.Po' -exec rm \{\} \;
+RUN rm -rf autom4te.cache
+RUN rm -rf .git/
+RUN find . -type f >/opt/netdata/manifest
+
+RUN CFLAGS="-O1 -ggdb -Wall -Wextra -Wformat-signedness -DNETDATA_INTERNAL_CHECKS=1\
+ -DNETDATA_VERIFY_LOCKS=1 ${EXTRA_CFLAGS}" ./netdata-installer.sh --disable-lto
+
+RUN ln -sf /dev/stdout /var/log/netdata/access.log && \
+ ln -sf /dev/stdout /var/log/netdata/debug.log && \
+ ln -sf /dev/stderr /var/log/netdata/error.log && \
+ ln -sf /dev/stdout /var/log/netdata/fluentbit.log
+
+RUN rm /var/lib/netdata/registry/netdata.public.unique.id
+
+CMD ["/usr/sbin/netdata","-D"]
+ENTRYPOINT []