summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoritchyny <itchyny@cybozu.co.jp>2023-07-04 16:00:04 +0900
committerGitHub <noreply@github.com>2023-07-04 16:00:04 +0900
commit2270e208d2ca5c884c877f92f67cc281f24906cb (patch)
tree28bdba5871e6e8c3ebeaab0f92ed6d9e1a6c51db
parent12ce4e3b544e15828d119a84bc61e1689d9d4b44 (diff)
Improve Dockerfile: update base image and optimize image size (#2649)
Also, drop ineffectual flags from configure.
-rw-r--r--.github/workflows/ci.yml12
-rw-r--r--Dockerfile72
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 \
diff --git a/Dockerfile b/Dockerfile
index f69f1f4d..18eccbed 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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"]