beancount-gs/dockerfile

62 lines
2.0 KiB
Plaintext
Raw Normal View History

# 构建beancount2.3.6
FROM python:3.11.9-alpine3.19 as beancount_builder
WORKDIR /build
RUN echo "https://mirrors.aliyun.com/alpine/v3.16/main/" > /etc/apk/repositories \
&& echo "https://mirrors.aliyun.com/alpine/v3.16/community/" >> /etc/apk/repositories \
&& set -x \
&& apk add --no-cache gcc musl-dev \
&& python3 -mvenv /app \
&& wget https://github.com/beancount/beancount/archive/refs/tags/2.3.6.tar.gz \
&& tar -zxvf 2.3.6.tar.gz \
&& /app/bin/pip install ./beancount-2.3.6 -i https://mirrors.aliyun.com/pypi/simple/ \
&& find /app -name __pycache__ -exec rm -rf -v {} + \
&& apk del gcc musl-dev
# 构建 beancount-gs
FROM golang:1.17.3-alpine AS go_builder
2022-07-26 14:28:40 +00:00
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct \
GIN_MODE=release \
CGO_ENABLED=0 \
PORT=80
2022-07-26 14:28:40 +00:00
WORKDIR /build
COPY . .
COPY public/icons /build/public/default_icons
2022-07-26 14:28:40 +00:00
RUN go build .
# 镜像
FROM python:3.11.9-alpine3.19
2022-07-26 14:28:40 +00:00
WORKDIR /app
#RUN echo "https://mirrors.aliyun.com/alpine/v3.16/main/" > /etc/apk/repositories \
# && echo "https://mirrors.aliyun.com/alpine/v3.16/community/" >> /etc/apk/repositories \
# && set -x \
# && apk update \
# && apk add --no-cache gcc musl-dev \
# && python3 -mvenv /app/beancount \
# && /app/beancount/bin/pip install --no-cache-dir beancount==2.3.6 -i https://mirrors.aliyun.com/pypi/simple/ \
# && apk del gcc musl-dev
# 大概116M的文件
COPY --from=beancount_builder /app /app/beancount
COPY --from=go_builder /build/beancount-gs /app
COPY --from=go_builder /build/template /app/template
COPY --from=go_builder /build/config /app/config
COPY --from=go_builder /build/public /app/public
COPY --from=go_builder /build/logs /app/logs
ENV LANG=C.UTF-8 \
SHELL=/bin/bash \
PS1="\u@\h:\w \$ " \
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/app/bin:/app/beancount/bin"
EXPOSE 80
ENTRYPOINT [ "/bin/sh", "-c", "cp -rn /app/public/default_icons/* /app/public/icons && /app/beancount-gs -p 80" ]