mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00

* update build instructions Usage of "modern" CMake syntax and using specific out of source build. Further add example on how to build in parallel, build a specific target and how to change the compiler. This closes #3236.
42 lines
969 B
Docker
42 lines
969 B
Docker
FROM ubuntu:22.04 AS base
|
|
|
|
FROM base AS builder
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
build-essential \
|
|
cmake \
|
|
curl \
|
|
git \
|
|
libgnutls28-dev \
|
|
uuid-dev
|
|
|
|
# Setup language environment
|
|
ENV LC_ALL en_US.UTF-8
|
|
ENV LANG en_US.UTF-8
|
|
ENV LANGUAGE en_US.UTF-8
|
|
|
|
# Add source directory
|
|
ADD .. /root/code/
|
|
WORKDIR /root/code/
|
|
|
|
# Setup Rust
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh && \
|
|
sh rustup.sh -y --profile minimal --default-toolchain stable --component rust-docs
|
|
|
|
# Build Taskwarrior
|
|
RUN git clean -dfx && \
|
|
git submodule init && \
|
|
git submodule update && \
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release . && \
|
|
cmake --build build -j 8
|
|
|
|
FROM base AS runner
|
|
|
|
# Install Taskwarrior
|
|
COPY --from=builder /root/code/build/src/task /usr/local/bin
|
|
|
|
# Initialize Taskwarrior
|
|
RUN ( echo "yes" | task ) || true
|