From 48ca4a20b43a1ed4e987d6bc2e869b2f11e48d04 Mon Sep 17 00:00:00 2001 From: zhongtong Date: Thu, 5 Dec 2024 15:01:21 +0800 Subject: [PATCH 1/5] add Dockerfile.build-and-run to realize multi-stage build;fix @testing-library/user-event@7.2.1 has unmet peer dependency @testing-library/dom@>=5 --- Dockerfile.build-and-run | 61 ++++++++++++++++++++++++++++++++++++++++ src/webapp/package.json | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.build-and-run diff --git a/Dockerfile.build-and-run b/Dockerfile.build-and-run new file mode 100644 index 00000000..702bd47a --- /dev/null +++ b/Dockerfile.build-and-run @@ -0,0 +1,61 @@ +#docker build -t bililive-go:build . -f Dockerfile.build-and-run +FROM golang:1.23.4-bullseye AS builder + +WORKDIR /build + +#安装tar解压xz需要的xz-utils和构建web页面所需的yarn +RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ + echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ + apt-get update && \ + apt-get install -y yarn xz-utils + +#安装构建web页面所需的node.js +RUN wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.xz && \ + tar Jxvf /build/node-v18.20.3-linux-x64.tar.xz && \ + rm -rf /usr/bin/node /usr/bin/npm && \ + ln -s /build/node-v18.20.3-linux-x64/bin/node /usr/bin/node && \ + ln -s /build/node-v18.20.3-linux-x64/bin/npm /usr/bin/npm + +COPY . . + +#配置国内源并进行构建 +RUN go env -w GO111MODULE=on && \ + go env -w GOPROXY=https://goproxy.cn,direct && \ + make build-web && \ + make + +RUN sh -c "/build/bin/bililive* --version" + + +FROM alpine + +ARG tag + +ENV WORKDIR="/srv/bililive" +ENV OUTPUT_DIR="/srv/bililive" \ + CONF_DIR="/etc/bililive-go" \ + PORT=8080 + +ENV PUID=0 PGID=0 UMASK=022 + +RUN mkdir -p $OUTPUT_DIR && \ + mkdir -p $CONF_DIR && \ + apk update && \ + apk --no-cache add ffmpeg libc6-compat curl su-exec tzdata && \ + cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +COPY --from=builder /build/bin/bililive* /usr/bin/bililive-go + + +COPY config.docker.yml $CONF_DIR/config.yml + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +VOLUME $OUTPUT_DIR + +EXPOSE $PORT + +WORKDIR ${WORKDIR} +ENTRYPOINT [ "sh" ] +CMD [ "/entrypoint.sh" ] diff --git a/src/webapp/package.json b/src/webapp/package.json index 6af08630..a59c74ca 100644 --- a/src/webapp/package.json +++ b/src/webapp/package.json @@ -4,7 +4,7 @@ "private": true, "homepage": "./", "dependencies": { - "@testing-library/jest-dom": "^4.2.4", + "@testing-library/jest-dom": "^5.0.0", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", "@types/jest": "^24.0.0", From f39f4f7dfaab6b4624b7c59d64cccbdd5d00095f Mon Sep 17 00:00:00 2001 From: ColorfulDick <1123063417@qq.com> Date: Fri, 6 Dec 2024 00:02:29 +0800 Subject: [PATCH 2/5] support download node.js according to linux arch --- Dockerfile.build-and-run | 19 ++++++++++++++----- test.sh | 13 +++++++++++++ 2 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 test.sh diff --git a/Dockerfile.build-and-run b/Dockerfile.build-and-run index 702bd47a..ca7fdf75 100644 --- a/Dockerfile.build-and-run +++ b/Dockerfile.build-and-run @@ -9,12 +9,21 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ apt-get update && \ apt-get install -y yarn xz-utils -#安装构建web页面所需的node.js -RUN wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.xz && \ - tar Jxvf /build/node-v18.20.3-linux-x64.tar.xz && \ + +#根据架构安装构建web页面所需的node.js +RUN ARCH=$(uname -m) && \ + if [ $ARCH = 'x86_64' ]; then \ + NODE_ARCH='x64'; \ + elif [ $ARCH = 'aarch64' ]; then \ + NODE_ARCH='arm64'; \ + else \ + echo '不支持的架构: $ARCH'; \ + fi && \ + wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ + tar Jxvf /build/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ rm -rf /usr/bin/node /usr/bin/npm && \ - ln -s /build/node-v18.20.3-linux-x64/bin/node /usr/bin/node && \ - ln -s /build/node-v18.20.3-linux-x64/bin/npm /usr/bin/npm + ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/node /usr/bin/node && \ + ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/npm /usr/bin/npm COPY . . diff --git a/test.sh b/test.sh new file mode 100644 index 00000000..689bafb4 --- /dev/null +++ b/test.sh @@ -0,0 +1,13 @@ +ARCH=$(uname -m) + +# 设置下载的URL +if [ "$ARCH" = "x86_64" ]; then + URL="https://nodejs.org/dist/latest/node-v14.17.3-linux-x64.tar.xz" +elif [ "$ARCH" = "aarch64" ]; then + URL="https://nodejs.org/dist/latest/node-v14.17.3-linux-arm64.tar.xz" +else + echo "不支持的架构: $ARCH" + exit 1 +fi + +echo $URL \ No newline at end of file From 43cd198a5991701c7df7d45c3f7f10bac0f50198 Mon Sep 17 00:00:00 2001 From: zhongtong Date: Mon, 9 Dec 2024 17:53:46 +0800 Subject: [PATCH 3/5] Revert "support download node.js according to linux arch" This reverts commit f39f4f7dfaab6b4624b7c59d64cccbdd5d00095f. --- Dockerfile.build-and-run | 19 +++++-------------- test.sh | 13 ------------- 2 files changed, 5 insertions(+), 27 deletions(-) delete mode 100644 test.sh diff --git a/Dockerfile.build-and-run b/Dockerfile.build-and-run index ca7fdf75..702bd47a 100644 --- a/Dockerfile.build-and-run +++ b/Dockerfile.build-and-run @@ -9,21 +9,12 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ apt-get update && \ apt-get install -y yarn xz-utils - -#根据架构安装构建web页面所需的node.js -RUN ARCH=$(uname -m) && \ - if [ $ARCH = 'x86_64' ]; then \ - NODE_ARCH='x64'; \ - elif [ $ARCH = 'aarch64' ]; then \ - NODE_ARCH='arm64'; \ - else \ - echo '不支持的架构: $ARCH'; \ - fi && \ - wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ - tar Jxvf /build/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ +#安装构建web页面所需的node.js +RUN wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.xz && \ + tar Jxvf /build/node-v18.20.3-linux-x64.tar.xz && \ rm -rf /usr/bin/node /usr/bin/npm && \ - ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/node /usr/bin/node && \ - ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/npm /usr/bin/npm + ln -s /build/node-v18.20.3-linux-x64/bin/node /usr/bin/node && \ + ln -s /build/node-v18.20.3-linux-x64/bin/npm /usr/bin/npm COPY . . diff --git a/test.sh b/test.sh deleted file mode 100644 index 689bafb4..00000000 --- a/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -ARCH=$(uname -m) - -# 设置下载的URL -if [ "$ARCH" = "x86_64" ]; then - URL="https://nodejs.org/dist/latest/node-v14.17.3-linux-x64.tar.xz" -elif [ "$ARCH" = "aarch64" ]; then - URL="https://nodejs.org/dist/latest/node-v14.17.3-linux-arm64.tar.xz" -else - echo "不支持的架构: $ARCH" - exit 1 -fi - -echo $URL \ No newline at end of file From 6b579ff00b418012bcdb089bef28c365f2e64e1d Mon Sep 17 00:00:00 2001 From: zhongtong Date: Mon, 9 Dec 2024 17:54:51 +0800 Subject: [PATCH 4/5] support download node.js according to linux arch --- Dockerfile.build-and-run | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Dockerfile.build-and-run b/Dockerfile.build-and-run index 702bd47a..ca7fdf75 100644 --- a/Dockerfile.build-and-run +++ b/Dockerfile.build-and-run @@ -9,12 +9,21 @@ RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ apt-get update && \ apt-get install -y yarn xz-utils -#安装构建web页面所需的node.js -RUN wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-x64.tar.xz && \ - tar Jxvf /build/node-v18.20.3-linux-x64.tar.xz && \ + +#根据架构安装构建web页面所需的node.js +RUN ARCH=$(uname -m) && \ + if [ $ARCH = 'x86_64' ]; then \ + NODE_ARCH='x64'; \ + elif [ $ARCH = 'aarch64' ]; then \ + NODE_ARCH='arm64'; \ + else \ + echo '不支持的架构: $ARCH'; \ + fi && \ + wget https://nodejs.org/dist/v18.20.3/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ + tar Jxvf /build/node-v18.20.3-linux-${NODE_ARCH}.tar.xz && \ rm -rf /usr/bin/node /usr/bin/npm && \ - ln -s /build/node-v18.20.3-linux-x64/bin/node /usr/bin/node && \ - ln -s /build/node-v18.20.3-linux-x64/bin/npm /usr/bin/npm + ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/node /usr/bin/node && \ + ln -s /build/node-v18.20.3-linux-${NODE_ARCH}/bin/npm /usr/bin/npm COPY . . From 6bc6d216b2434e078a5832fe86f071b58603fc98 Mon Sep 17 00:00:00 2001 From: ColorfulDick <1123063417@qq.com> Date: Tue, 10 Dec 2024 00:06:34 +0800 Subject: [PATCH 5/5] remove golang proxy of cn --- Dockerfile.build-and-run | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile.build-and-run b/Dockerfile.build-and-run index ca7fdf75..9d4350a6 100644 --- a/Dockerfile.build-and-run +++ b/Dockerfile.build-and-run @@ -27,9 +27,8 @@ RUN ARCH=$(uname -m) && \ COPY . . -#配置国内源并进行构建 +#配置golang编译环境并进行构建 RUN go env -w GO111MODULE=on && \ - go env -w GOPROXY=https://goproxy.cn,direct && \ make build-web && \ make