diff options
author | itchyny <itchyny@cybozu.co.jp> | 2023-07-04 16:00:04 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-04 16:00:04 +0900 |
commit | 2270e208d2ca5c884c877f92f67cc281f24906cb (patch) | |
tree | 28bdba5871e6e8c3ebeaab0f92ed6d9e1a6c51db | |
parent | 12ce4e3b544e15828d119a84bc61e1689d9d4b44 (diff) |
Improve Dockerfile: update base image and optimize image size (#2649)
Also, drop ineffectual flags from configure.
-rw-r--r-- | .github/workflows/ci.yml | 12 | ||||
-rw-r--r-- | Dockerfile | 72 |
2 files changed, 31 insertions, 53 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a5aa92f..cf0bd590 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,8 +43,7 @@ jobs: - name: Build run: | autoreconf -i - ./configure --disable-dependency-tracking \ - --disable-silent-rules \ + ./configure \ --disable-docs \ --disable-maintainer-mode \ --disable-valgrind \ @@ -96,8 +95,7 @@ jobs: - name: Build run: | autoreconf -i - ./configure --disable-dependency-tracking \ - --disable-silent-rules \ + ./configure \ --disable-docs \ --disable-maintainer-mode \ --disable-valgrind \ @@ -156,8 +154,7 @@ jobs: shell: msys2 {0} run: | autoreconf -i - ./configure --disable-dependency-tracking \ - --disable-silent-rules \ + ./configure \ --disable-docs \ --disable-maintainer-mode \ --disable-valgrind \ @@ -203,8 +200,7 @@ jobs: - name: Create dist run: | autoreconf -i - ./configure --disable-dependency-tracking \ - --disable-silent-rules \ + ./configure \ --disable-docs \ --disable-maintainer-mode \ --disable-valgrind \ @@ -1,54 +1,36 @@ -FROM debian:9 +FROM debian:12-slim AS builder ENV DEBIAN_FRONTEND=noninteractive \ DEBCONF_NONINTERACTIVE_SEEN=true \ LC_ALL=C.UTF-8 \ LANG=C.UTF-8 -COPY . /app +RUN apt-get update \ + && apt-get install -y \ + build-essential \ + autoconf \ + libtool \ + git \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* -# get dependencies, build, and remove anything we don't need for running jq. -# valgrind seems to have trouble with pthreads TLS so it's off. +WORKDIR /app +COPY . /app +RUN autoreconf -i \ + && ./configure \ + --disable-docs \ + --disable-maintainer-mode \ + --disable-valgrind \ + --with-oniguruma=builtin \ + --enable-static \ + --enable-all-static \ + --prefix=/usr/local \ + && make -j$(nproc) \ + && make check \ + && make install-strip -RUN apt-get update && \ - apt-get install -y \ - build-essential \ - autoconf \ - libtool \ - git \ - bison \ - flex \ - python3 \ - python3-pip \ - wget && \ - pip3 install pipenv && \ - (cd /app/docs && pipenv sync) && \ - (cd /app && \ - git submodule init && \ - git submodule update && \ - autoreconf -i && \ - ./configure --disable-valgrind --enable-all-static --prefix=/usr/local && \ - make -j8 && \ - make check && \ - make install ) && \ - (cd /app/modules/oniguruma && \ - make uninstall ) && \ - (cd /app && \ - make distclean ) && \ - apt-get purge -y \ - build-essential \ - autoconf \ - libtool \ - bison \ - git \ - flex \ - python3 \ - python3-pip && \ - apt-get autoremove -y && \ - rm -rf /app/modules/oniguruma/* && \ - rm -rf /app/modules/oniguruma/.git && \ - rm -rf /app/modules/oniguruma/.gitignore && \ - rm -rf /var/lib/apt/lists/* /var/lib/gems +FROM scratch -ENTRYPOINT ["/usr/local/bin/jq"] -CMD [] +COPY --from=builder /app/AUTHORS /app/COPYING /usr/local/bin/jq / +RUN ["/jq", "--version"] +ENTRYPOINT ["/jq"] |