-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
56 lines (50 loc) · 2.21 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
FROM ubuntu:latest AS build
MAINTAINER srl295
LABEL org.opencontainers.image.source = "https://github.com/codehivetx/dock-warrior"
USER root
# From taskwarrior's build
RUN apt-get update
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y build-essential cmake git uuid-dev libgnutls28-dev faketime locales python3
# Additional
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y curl
# Setup language environment
RUN locale-gen en_US.UTF-8
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.UTF-8
ENV HOME /home/build
ENV OPT /opt
RUN useradd -c "Build user" -d $HOME -m build
RUN mkdir ${OPT} ; chown build ${OPT}
USER build
WORKDIR /home/build
# Fetch and build taskwarrior
ARG TASK_VERSION=2.6.2
RUN (mkdir task ; cd task ; curl -L https://github.com/GothenburgBitFactory/taskwarrior/releases/download/v${TASK_VERSION}/task-${TASK_VERSION}.tar.gz | tar xfpz - --strip-components=1)
RUN (cd task && cmake -DCMAKE_INSTALL_PREFIX=${OPT} -DCMAKE_BULD_TYPE=release . && make -j2 all install )
ARG TIMEW_VERSION=1.6.0
RUN (mkdir timew ; cd timew ; curl -L https://github.com/GothenburgBitFactory/timewarrior/releases/download/v${TIMEW_VERSION}/timew-${TIMEW_VERSION}.tar.gz | tar xfpz - --strip-components=1)
RUN (cd timew && cmake -DCMAKE_INSTALL_PREFIX=${OPT} -DCMAKE_BULD_TYPE=release . && make -j2 all install )
# Now, the runner
FROM ubuntu:latest AS run
RUN apt-get update
RUN DEBIAN_FRONTEND="noninteractive" apt-get install -y python3 tzdata python3-pip curl emacs-nox
ENV TZ="America/New_York"
COPY --from=build /opt /opt
VOLUME /config /data
ENV TASKRC=/config/task/taskrc
ENV TASKDATA=/data/task
ENV TIMEWARRIORDB=/data/timew
ENV PATH=/opt/bin:${HOME}/bin:/usr/local/bin:/usr/bin:/bin
# TODO: version
ARG BUGWARRIOR_VERSION=develop
RUN (mkdir bugwarrior && cd bugwarrior && curl -L https://github.com/ralphbean/bugwarrior/tarball/${BUGWARRIOR_VERSION} | tar xfpz - --strip-components=1 )
# TODO: install in build env
ARG BUGWARRIOR_EXTRAS=jira
RUN (cd bugwarrior && pip3 install .[${BUGWARRIOR_EXTRAS}])
RUN rm -rf /bugwarrior
ENV XDG_CONFIG_HOME=/config
ENV BUGWARRIORRC=/config/bugwarrior/bugwarriorrc
ENV TZ="America/Chicago"
ENV EDITOR="emacs"
ENV VISUAL="emacs"