修改镜像构建方式,减小大小
This commit is contained in:
parent
1158907a6f
commit
b2cc6bfecd
34
Dockerfile
34
Dockerfile
@ -1,33 +1,23 @@
|
|||||||
FROM node:15-buster
|
FROM node:15-alpine3.12
|
||||||
|
|
||||||
RUN apt update && apt install software-properties-common -y && apt clean && rm -rf /var/lib/apt/lists/*
|
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
||||||
|
RUN apk add --update --no-cache sqlite python3 git moreutils yq gcc make libc-dev wget
|
||||||
|
|
||||||
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CC86BB64
|
# 修复alpine的golang支持
|
||||||
|
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
|
||||||
RUN add-apt-repository "deb http://ppa.launchpad.net/rmescandon/yq/ubuntu focal main" -y
|
|
||||||
|
|
||||||
RUN apt update && apt install sqlite python git moreutils yq -y && apt clean && rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
|
||||||
ADD https://golang.org/dl/go1.15.5.linux-amd64.tar.gz /tmp/go1.15.5.linux-amd64.tar.gz
|
RUN wget https://golang.org/dl/go1.15.5.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz && echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile && rm -f /tmp/go1.15.5.linux-amd64.tar.gz
|
||||||
|
|
||||||
RUN tar -C /usr/local -xzf go1.15.5.linux-amd64.tar.gz && echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile
|
ADD build.sh /tmp/build.sh
|
||||||
|
RUN chmod +x /tmp/build.sh && /tmp/build.sh
|
||||||
|
|
||||||
WORKDIR /opt
|
WORKDIR /opt/privacy
|
||||||
|
|
||||||
RUN git clone https://github.com/kallydev/privacy
|
|
||||||
|
|
||||||
WORKDIR /opt/privacy/server
|
|
||||||
|
|
||||||
RUN export PATH=$PATH:/usr/local/go/bin && go build -o app main/main.go
|
|
||||||
|
|
||||||
WORKDIR /opt/privacy/website
|
|
||||||
|
|
||||||
RUN yarn install && yarn build
|
|
||||||
|
|
||||||
|
ADD scripts/ /opt/privacy/scripts/
|
||||||
|
ADD config.yaml /opt/privacy/config.yaml
|
||||||
ADD entrypoint.sh /opt/privacy/entrypoint.sh
|
ADD entrypoint.sh /opt/privacy/entrypoint.sh
|
||||||
|
|
||||||
RUN chmod +x /opt/privacy/entrypoint.sh
|
RUN chmod +x /opt/privacy/entrypoint.sh
|
||||||
|
|
||||||
VOLUME [ "/opt/privacy/database", "/opt/privacy/source" ]
|
VOLUME [ "/opt/privacy/database", "/opt/privacy/source" ]
|
||||||
@ -44,6 +34,4 @@ ENV mask=true
|
|||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
WORKDIR /opt/privacy
|
|
||||||
|
|
||||||
ENTRYPOINT [ "/opt/privacy/entrypoint.sh" ]
|
ENTRYPOINT [ "/opt/privacy/entrypoint.sh" ]
|
||||||
|
16
build.sh
Normal file
16
build.sh
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
export PATH=$PATH:/usr/local/go/bin
|
||||||
|
mkdir -p /opt/privacy/server/
|
||||||
|
mkdir -p /opt/privacy/website/
|
||||||
|
cd /tmp
|
||||||
|
git clone https://github.com/kallydev/privacy
|
||||||
|
cd /tmp/privacy/server
|
||||||
|
go build -o /opt/privacy/server/app main/main.go
|
||||||
|
chmod 0755 /opt/privacy/server/app
|
||||||
|
cd /tmp/privacy/website
|
||||||
|
yarn install && yarn build
|
||||||
|
cp -r /tmp/privacy/website/build /opt/privacy/website/build
|
||||||
|
rm -rf /tmp/privacy
|
||||||
|
rm -rf /root/go/pkg/*
|
||||||
|
rm -rf /usr/local/go/pkg/*
|
||||||
|
rm -rf /usr/local/share/.cache
|
@ -3,7 +3,7 @@ version: "3.3"
|
|||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
build: .
|
build: .
|
||||||
image: privacy
|
image: privacy:alpine
|
||||||
network_mode: bridge
|
network_mode: bridge
|
||||||
volumes:
|
volumes:
|
||||||
- ./database:/opt/privacy/database
|
- ./database:/opt/privacy/database
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
# 设置环境变量
|
# 设置环境变量
|
||||||
yq w config.yaml database.tables.qq $qq | yq w - database.tables.jd $jd | yq w - database.tables.sf $sf | yq w - database.tables.wb $wb | yq w - http.host $host | yq w - http.port $port | yq w - mask $mask | sponge config.yaml
|
yq w config.yaml database.tables.qq $qq | yq w - database.tables.jd $jd | yq w - database.tables.sf $sf | yq w - database.tables.wb $wb | yq w - http.host $host | yq w - http.port $port | yq w - mask $mask | sponge config.yaml
|
||||||
|
Loading…
x
Reference in New Issue
Block a user