diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..bb8aac4 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,61 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. +on: + push: + branches: + - main + +# Allows you to run this workflow manually from the Actions tab +# 可以手动触发 + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + tags: + description: 'Test scenario tags' + +jobs: + buildx: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + - name: Get current date + id: date + run: echo "::set-output name=today::$(date +'%Y-%m-%d')" + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + - + name: Available platforms + run: echo ${{ steps.buildx.outputs.platforms }} + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile +# 所需要的体系结构,可以在 Available platforms 步骤中获取所有的可用架构 + platforms: linux/amd64,linux/arm64/v8 +# 镜像推送时间 + push: ${{ github.event_name != 'pull_request' }} +# 给清单打上多个标签 + tags: | + eryajf/go-ldap-admin-server:${{ steps.date.outputs.today }} + eryajf/go-ldap-admin-server:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7ba5968 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM golang:1.17.10 AS builder + +ENV GOPROXY https://goproxy.io + +RUN mkdir /app +ADD . /app/ +WORKDIR /app +RUN go build -o go-ldap-admin . + +FROM centos:centos7 +RUN mkdir /app +WORKDIR /app +COPY --from=builder /app/wait . +COPY --from=builder /app/ . +RUN chmod +x wait go-ldap-admin && yum -y install vim net-tools telnet wget curl && yum clean all +CMD ./wait && ./go-ldap-admin \ No newline at end of file diff --git a/wait b/wait new file mode 100755 index 0000000..877e0c6 Binary files /dev/null and b/wait differ