-
Notifications
You must be signed in to change notification settings - Fork 112
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
bincooo
authored and
bincooo
committed
Dec 26, 2024
1 parent
9fd4bcc
commit a725158
Showing
3 changed files
with
129 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
name: Build ChatGPT-Adatper images and copy image to docker hub | ||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- '*' | ||
tags: | ||
- 'v*' | ||
jobs: | ||
build-docker-images: | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 1 | ||
- name: Install Dependencies | ||
run: | | ||
sudo apt update && sudo apt install -y golang | ||
- name: Set up QEMU (optional) | ||
uses: docker/setup-qemu-action@v2 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
with: | ||
driver-opts: network=host | ||
- name: Cache Docker layers | ||
uses: actions/cache@v2 | ||
with: | ||
path: /tmp/.buildx-cache | ||
key: ${{ runner.os }}-buildx-${{ github.sha }} | ||
restore-keys: | | ||
${{ runner.os }}-buildx- | ||
- name: Login to GitHub Container Registry | ||
uses: docker/login-action@v2 | ||
with: | ||
registry: ghcr.io | ||
username: ${{ github.repository_owner }} | ||
password: ${{ secrets.GOLBAL }} | ||
- name: Set DOCKER_REPO_TAGGED based on branch or tag | ||
run: | | ||
if [[ "${{ github.ref_name }}" == "main" ]]; then | ||
echo "DOCKER_REPO_TAGGED=ghcr.io/${{ github.repository_owner }}/chatgpt-adapter:latest" >> $GITHUB_ENV | ||
echo "DOCKER_REPO_TAGGED_ARM=ghcr.io/${{ github.repository_owner }}/chatgpt-adapter-arm64:latest" >> $GITHUB_ENV | ||
else | ||
echo "DOCKER_REPO_TAGGED=ghcr.io/${{ github.repository_owner }}/chatgpt-adapter:${{ github.ref_name }}" >> $GITHUB_ENV | ||
echo "DOCKER_REPO_TAGGED_ARM=ghcr.io/${{ github.repository_owner }}/chatgpt-adapter-arm64:${{ github.ref_name }}" >> $GITHUB_ENV | ||
fi | ||
- name: Build and publish image for main branch or tag push event | ||
env: | ||
DOCKER_REPO_TAGGED: ${{ env.DOCKER_REPO_TAGGED }} | ||
DOCKER_REPO_TAGGED_ARM: ${{ env.DOCKER_REPO_TAGGED_ARM }} | ||
run: | | ||
docker buildx build \ | ||
-f deploy/Dockerfile \ | ||
--platform linux/amd64 \ | ||
--label "org.opencontainers.image.source=https://github.com/${{ github.repository_owner }}/chatgpt-adapter" \ | ||
--label "org.opencontainers.image.description=chatgpt-adapter image" \ | ||
--push \ | ||
--cache-from=type=local,src=/tmp/.buildx-cache \ | ||
--cache-to=type=local,dest=/tmp/.buildx-cache \ | ||
-t ${DOCKER_REPO_TAGGED} \ | ||
. | ||
sed -i 's/build-linux/build-linux-arm64/g' deploy/Dockerfile | ||
sed -i 's/bin\/linux\/server/bin\/linux\/server-arm64/g' deploy/Dockerfile | ||
sed -i 's/alpine:3\.19\.0/arm64v8\/alpine:3\.19\.1/g' deploy/Dockerfile | ||
docker buildx build \ | ||
-f deploy/Dockerfile \ | ||
--platform linux/arm64/v8 \ | ||
--label "org.opencontainers.image.source=https://github.com/${{ github.repository_owner }}/chatgpt-adapter" \ | ||
--label "org.opencontainers.image.description=chatgpt-adapter image" \ | ||
--push \ | ||
--cache-from=type=local,src=/tmp/.buildx-cache \ | ||
--cache-to=type=local,dest=/tmp/.buildx-cache \ | ||
-t ${DOCKER_REPO_TAGGED_ARM} \ | ||
. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
FROM golang:1.21-alpine AS builder | ||
|
||
WORKDIR /app | ||
RUN apk add git make && git clone https://github.com/bincooo/chatgpt-adapter.git . | ||
RUN make build-linux | ||
|
||
FROM ubuntu:latest | ||
|
||
WORKDIR /app | ||
COPY --from=builder /app/bin/linux/server ./server | ||
|
||
RUN apt update \ | ||
&& apt-get install -y curl unzip wget gnupg2 | ||
|
||
# 下载过盾文件 | ||
RUN curl -JLO https://raw.githubusercontent.com/bincooo/chatgpt-adapter/refs/heads/hel/bin.zip | ||
RUN echo -e 'server:\n port: 8080' > ./config.yaml | ||
|
||
# Install google | ||
RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ | ||
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ | ||
&& apt-get update \ | ||
&& apt-get install -y google-chrome-stable | ||
|
||
# Install Edge | ||
#RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \ | ||
# && echo "deb https://packages.microsoft.com/repos/edge stable main" >> /etc/apt/sources.list.d/microsoft-edge.list \ | ||
# && apt-get update -qqy \ | ||
# && apt-get -qqy --no-install-recommends install microsoft-edge-stable | ||
|
||
RUN unzip bin.zip \ | ||
&& chmod +x server \ | ||
&& chmod +x bin/linux/helper | ||
|
||
ENV ARG "--port 8080" | ||
CMD ["./server ${ARG}"] | ||
ENTRYPOINT ["sh", "-c"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
FROM golang:1.21-alpine AS builder | ||
|
||
WORKDIR /app | ||
RUN apk add git make && git clone https://github.com/bincooo/chatgpt-adapter.git . | ||
RUN make build-linux | ||
|
||
FROM alpine:3.19.0 | ||
WORKDIR /app | ||
COPY --from=builder /app/bin/linux/server ./server | ||
RUN echo -e 'server:\n port: 8080' > ./config.yaml | ||
RUN chmod +x server | ||
|
||
ENV ARG "--port 8080" | ||
CMD ["./server ${ARG}"] | ||
ENTRYPOINT ["sh", "-c"] |