Skip to content

Commit

Permalink
publish docker image (#433)
Browse files Browse the repository at this point in the history
### What problem were solved in this pull request?

Problem:
docker.io is disabled in China.

### What is changed and how it works?
Use another image repo instead.

### Other information
  • Loading branch information
hnwyllmm authored Jul 22, 2024
1 parent b12a45c commit b56288b
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 5 deletions.
65 changes: 65 additions & 0 deletions .github/workflows/pulish-docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: publish miniob docker image

on:
push:
tags:
- "docker-*"

env:
tagName: ${{ github.ref_name }}

jobs:
publish-miniob-docker-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v2

- name: Log in to Docker hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Log in to Quay io
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: ${{ secrets.QUAY_IO_PASSWORD }}

- name: Log in to Ghcr io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Set Version variables
id: set_version_vars
run: echo "version=$(echo $tagName | grep -P '(\d*\.\d*)' --only-matching)" >> $GITHUB_OUTPUT

- name: Build and push miniob w/o cache
uses: docker/build-push-action@v6
with:
context: ./
platforms: linux/amd64,linux/arm64
file: ./docker/Dockerfile
push: true
tags: |
${{ vars.DOCKER_PUSH_BASE }}/miniob:${{ steps.set_version_vars.outputs.version }}
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/miniob:${{ steps.set_version_vars.outputs.version }}
ghcr.io/${{ github.repository_owner }}/miniob:${{ steps.set_version_vars.outputs.version }}
${{ vars.DOCKER_PUSH_BASE }}/miniob:latest
quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/miniob:latest
ghcr.io/${{ github.repository_owner }}/miniob:latest
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# use docker build: docker build -t miniob .
# use docker compose: docker compose up -d --build
# make sure docker has been installed
FROM ubuntu:latest
FROM ubuntu:22.04

# ENV LANG=en_US.UTF-8
# locale
Expand Down
7 changes: 3 additions & 4 deletions docs/docs/dev-env/how-to-dev-using-docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@ MiniOB 依赖的第三方组件比较多,搭建开发环境比较繁琐,建
```bash
docker run --privileged -d --name=miniob oceanbase/miniob
```
增加 privileged 权限是为了方便在容器中调试。

此命令会创建一个新的容器,然后可以执行下面的命令进入容器:

```bash
docker exec -it miniob /usr/bin/zsh
```

Docker环境说明:
docker基于`anolisos:8.6`制作。
docker基于`ubuntu:22.04`制作。

镜像包含:

Expand All @@ -34,7 +36,4 @@ docker基于`anolisos:8.6`制作。
- flex
- bison(3.7)
- gcc/g++ (version=11)
- miniob 源码(/root/source/miniob) (注意在v1.1版本后,需要自己下载源码)

docker中在/root/source/miniob目录下载了github的源码,可以根据个人需要,下载自己仓库的源代码,也可以直接使用git pull 拉取最新代码。
/root/source/miniob/build.sh 提供了一个编译脚本,以DEBUG模式编译miniob。

0 comments on commit b56288b

Please sign in to comment.