Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Merge repo pegasus-kv/pegasus-docker #944

Merged
merged 129 commits into from
Apr 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
4078026
initial commit for docker onebox
Aug 5, 2019
52f519c
update README
Aug 5, 2019
9160186
expose meta port that can be specified by user
Aug 6, 2019
dd9f0e6
only meta depends on static ip
Aug 7, 2019
46fb66b
fix network problem for multiple setup
Aug 7, 2019
5c44d98
support user-specified replica-count and meta count
Sep 23, 2019
09e7c59
allows meta to change port
Feb 24, 2020
9c482df
update doc for building docker image
neverchanje Jul 17, 2020
47b42f8
divide the project into two subprojects
neverchanje Oct 21, 2020
6431494
create 2.1.0 building-env
neverchanje Oct 22, 2020
679dee6
update readme
neverchanje Oct 25, 2020
1995cc9
add doc for binary packaging
neverchanje Oct 26, 2020
e29f6b9
r
neverchanje Oct 26, 2020
c9c559e
add dockerfile for centos6
neverchanje Oct 26, 2020
00e0937
refactor project path
neverchanje Oct 26, 2020
a5c2b50
update readme
neverchanje Oct 26, 2020
72b2d93
update readme
neverchanje Oct 26, 2020
d4e01eb
update readme
neverchanje Oct 26, 2020
e74c83b
fix
neverchanje Oct 26, 2020
e51b8cb
fix link
neverchanje Oct 26, 2020
4842765
add docker image for clang-format-3.9
neverchanje Nov 2, 2020
d9eb076
fix clang-format-3.9
neverchanje Nov 2, 2020
033cb26
add dockerfile for ci-env
neverchanje Nov 3, 2020
cbac6e1
fix ci-env
neverchanje Nov 3, 2020
2faee90
fix ci-env: install nmap/ncat, zip zookeeper in package
neverchanje Nov 3, 2020
82d747d
set JAVA_HOME (#1)
zhangyifan27 Nov 10, 2020
2a2970b
install jdk (#2)
zhangyifan27 Nov 11, 2020
7f1b2d3
fix: keep libtool in build-env docker, do not remove gcc for centos
neverchanje Nov 26, 2020
c268903
update docker build-env for centos
neverchanje Dec 12, 2020
3fc00b4
add jdk8 for ubuntu
neverchanje Dec 12, 2020
2e4ab1f
update readme
neverchanje Dec 12, 2020
4499e62
update readme
neverchanje Dec 12, 2020
a3585ab
fix centos docker build-env
neverchanje Dec 12, 2020
359578a
fix centos yum testing
neverchanje Dec 12, 2020
150b535
use github actions to push to dockerhub
neverchanje Dec 12, 2020
1dbe914
fix github actions
neverchanje Dec 12, 2020
5547a4c
fix github actions
neverchanje Dec 12, 2020
9830bcf
change docker file of build-env
neverchanje Dec 12, 2020
831fb53
rename workflow
neverchanje Dec 12, 2020
6e7cce6
update ubuntu dockerfiles, ignore centos6
neverchanje Dec 12, 2020
a241c12
fix centos6 problem
neverchanje Dec 12, 2020
5726440
fix centos6 problem
neverchanje Dec 12, 2020
4b0bd39
ignore centos6
neverchanje Dec 12, 2020
51886dc
add thirdparties-src docker image
neverchanje Dec 13, 2020
9ae744d
create workflow thirdparties-src.yml
Dec 13, 2020
aa7c459
run workflow only when the subpath updated
neverchanje Dec 13, 2020
81042db
Update thirdparties-src.yml
Dec 13, 2020
1f1a434
Update thirdparties-src.yml
Dec 13, 2020
4fa0a92
Update thirdparties-src.yml
Dec 13, 2020
5acf1c8
Update thirdparties-src.yml
Dec 13, 2020
9a7d543
Update thirdparties-src.yml
Dec 13, 2020
1343895
Update thirdparties-src.yml
Dec 13, 2020
a91775b
execute workflow when config file changes
Dec 13, 2020
a808fe2
Update thirdparties-src.yml
Dec 13, 2020
be5312a
fix ghcr registry in thirdparties-src
Dec 13, 2020
9ff0f03
add thirdparties-bin
neverchanje Dec 13, 2020
165514e
thirdparties-bin supports manual trigger
neverchanje Dec 13, 2020
e8525c0
fix thirdparties-bin build
neverchanje Dec 13, 2020
aa1825b
fix thirdparties-bin Dockerfile
neverchanje Dec 13, 2020
f7979f2
fix: thirdparties-bin/src fail-fast
neverchanje Dec 13, 2020
fa2a246
Update README.md
Dec 13, 2020
770f661
fix: centos7 build-env missing zip
Dec 13, 2020
bef5b45
build-env upload to ghcr
Dec 14, 2020
155af94
make registry url in thirdparties-src configurable
Dec 14, 2020
c57e1d4
rebuild build-env when yml changes
Dec 14, 2020
f88017a
reduce size of thirdparties-src
Dec 14, 2020
d232fb4
fix: thirdparties-src build
neverchanje Dec 14, 2020
a75e924
Update README.md
Dec 14, 2020
b9bb2ec
Create regular-build.yml
Dec 14, 2020
4260f3f
Update README.md
Dec 14, 2020
8838878
fix regular-build repository
Dec 14, 2020
aa507e1
regular-build: checkout after dockerhub login
Dec 14, 2020
b49b262
fix regular-build
Dec 14, 2020
ca49bc5
Update README.md
Dec 14, 2020
4105347
install ccache and nmap-ncat in centos7 build-env
Dec 14, 2020
e6210c2
thirdparties-src supports configurable tag of rdsn
Dec 14, 2020
f707101
thirdparties-src upload to dockerhub too
Dec 14, 2020
062098e
fix thirdparties-src
Dec 14, 2020
1524a12
add bcc-tools-centos7 image
neverchanje Dec 22, 2020
af21008
add workflow for sanitizers
neverchanje Dec 23, 2020
2e527ef
fix: sanitizers remove gcov
Dec 24, 2020
325fac3
fix: sanitizers run.sh test sanitizers flag
Dec 24, 2020
41ab13c
sanitizers: install dependencies nmap, cat
Dec 24, 2020
6bd32b4
sanitizers: update apt before install
Dec 24, 2020
e794df1
sanitizers: use ubuntu1804
Dec 24, 2020
5413045
sanitizers: fix ncat with netcat
Dec 25, 2020
9fca266
Update README.md
Dec 27, 2020
6e92534
docs: add simple doc for pegasus-build-env
Jan 4, 2021
5ab1637
feat: support building docker from prebuilt bin
neverchanje Jan 7, 2021
f00e676
fix: clone pegasus recursively
neverchanje Jan 8, 2021
bb911f7
docs: add doc for docker-compose
neverchanje Jan 8, 2021
8e642de
fix: config environment to run server
neverchanje Jan 8, 2021
fcd635f
fix: pegasus-regular-build git clone
neverchanje Jan 8, 2021
999e62a
fix: change working dir of pegasus-regular-build
neverchanje Jan 8, 2021
3abe09b
doc: add badge for pegasus-regular-build
neverchanje Jan 8, 2021
afc970d
feat: also pack tools in pegasus-regular-build
neverchanje Jan 8, 2021
13be8a1
fix: docker-compose config for latest pegasus
neverchanje Jan 8, 2021
7348ee1
doc: update readme of docker-compose
neverchanje Jan 11, 2021
e88f60d
fix: udate LD_LIBRARY_PATH (#3)
Feb 4, 2021
aae6a98
clangformat-3.9 image update
neverchanje Feb 4, 2021
8b619a9
fix: add hadoop files to pegasus-thirdparty-output.zip (#4)
zhangyifan27 Feb 22, 2021
4bb8829
fix: install netcat on ubuntu platform
neverchanje Feb 23, 2021
ffcdfa5
fix: ubuntu build-env add ccache and wget
neverchanje Feb 23, 2021
46ca861
fix: sanitizers based on latest build-env without install other deps
neverchanje Feb 23, 2021
28644e8
fix: use bash to run sanitizers
neverchanje Feb 24, 2021
8bf623d
fix: add LD_LIBRARY_PATH to rdsn sanitizers job
neverchanje Feb 24, 2021
35c67c7
feat: also push thirdparties-bin to dockerhub
Feb 28, 2021
f410aea
feat: support upload thirdparties-bin to aliyun
Feb 28, 2021
504b55a
fix: udpate ubuntu build-env git version
neverchanje Mar 17, 2021
7190c89
ubuntu 1804 supports clang-10
neverchanje Mar 26, 2021
6e7b80b
rdsn regular build supports clang-10
neverchanje Mar 26, 2021
f5a52ec
Update regular-build.yml
Mar 29, 2021
0e68095
Update regular-build.yml
Mar 29, 2021
13a9532
fix: refine matrix usage in rdsn regular build
neverchanje Mar 29, 2021
920ce02
fix: build-env ubuntu1804 use clang-9 as default clang
neverchanje Mar 29, 2021
2bdc41c
build-env add vim and gdb
neverchanje Mar 29, 2021
46d4ba4
fix: update pegasus regular build
neverchanje Mar 31, 2021
713e216
feat: add clang for pegasus regular build
neverchanje Mar 31, 2021
fbce42c
fix: build rocksdb in portable mode
neverchanje Apr 6, 2021
f9cd6b1
fix: fix bug in github workflow (#7)
levy5307 Jul 30, 2021
cd79fec
feat: remove building rdsn with sanitizers (#8)
levy5307 Aug 24, 2021
101e9e1
feat: install mvn in build env (#9)
levy5307 Feb 16, 2022
2c4c78a
fix: fix docker compile and push (#10)
foreverneverer Mar 29, 2022
625f3ad
build: update readme about github action (#11)
foreverneverer Mar 29, 2022
45424ca
chore: pre-install krb5-dev and sasl2-dev libs, export JAVA_HOME in C…
GehaFearless Apr 8, 2022
463687b
chore: Add hadolint CI for Dockerfile (#19)
acelyc111 Apr 14, 2022
305da76
ubuntu docker add unzip (#20)
GehaFearless Apr 14, 2022
0f8d49e
Merge remote-tracking branch 'pegasus-docker/master' into merge_test
acelyc111 Apr 14, 2022
5358c7a
Fix license header issuses
acelyc111 Apr 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
version: 2.1
orbs:
docker: circleci/[email protected]
workflows:
lint:
jobs:
- docker/hadolint:
dockerfiles: 'docker/bcc-centos7/Dockerfile:docker/ci-env/Dockerfile:docker/clang-format-3.9/Dockerfile:docker/pegasus-build-env/centos7/Dockerfile:docker/pegasus-build-env/ubuntu1604/Dockerfile:docker/pegasus-build-env/ubuntu1804/Dockerfile:docker/pegasus-build-env/ubuntu2004/Dockerfile:docker/pegasus-docker-compose/image_for_prebuilt_bin/Dockerfile:docker/thirdparties-bin/Dockerfile:docker/thirdparties-src/Dockerfile'
ignore-rules: 'DL3033,DL3013,DL3059,SC2086,DL3003,SC2164,DL3008,DL3007,DL3006'
68 changes: 68 additions & 0 deletions .github/build-push-env-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
name: BuildCompilationEnvDocker-build and publish multi compilation os env

on:
push:
paths:
- 'docker/pegasus-build-env/**'
- '.github/workflows/build-push-env-docker.yml'

# for manually triggering workflow
workflow_dispatch:

jobs:
build_compilation_env_docker_images:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dockertag:
- ubuntu1604
- ubuntu1804
- ubuntu2004
#- centos6 is EOL
- centos7
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
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: ./docker/pegasus-build-env/${{ matrix.dockertag }}/Dockerfile
push: true
tags: |
apachepegasus/build-env:${{ matrix.dockertag }}
-
name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
93 changes: 93 additions & 0 deletions .github/pegasus-regular-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
name: BuildPegasusRegularly-build pegasus and rdsn on different env every day

on:
push:
paths:
- '.github/workflows/pegasus-regular-build.yml'

# for manually triggering workflow
workflow_dispatch:

# run for every day 2am UTC+8(Beijing)
schedule:
- cron: '0 18 */1 * *'

jobs:
build_docker_images:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os:
- ubuntu1604
- ubuntu1804
- ubuntu2004
#- centos6 is EOL
- centos7
compiler-family:
- gcc
include:
- compiler-family: clang
compiler: "clang-10,clang++-10"
os: ubuntu2004
- compiler-family: clang
compiler: "clang-9,clang++-9"
os: ubuntu1804
container:
image: apachepegasus/thirdparties-bin:${{ matrix.os }}
defaults:
run:
working-directory: /root/incubator-pegasus
steps:
- name: Clone Apache Pegasus Source
working-directory: /root
run: |
git clone --recursive --depth=1 https://github.com/apache/incubator-pegasus.git
cd incubator-pegasus
-
name: Unpack prebuilt third-parties
run: unzip /root/thirdparties-bin.zip -d ./rdsn/thirdparty
-
name: Compilation rdsn on GCC
if: ${{ matrix.compiler-family == 'gcc' }}
run: |
cd ./rdsn
./run.sh build -c --skip_thirdparty
-
name: Compilation pegasus on GCC
if: ${{ matrix.compiler-family == 'gcc' }}
run: ./run.sh build -c --skip_thirdparty
-
name: Compilation rdsn on Clang
if: ${{ matrix.compiler-family == 'clang' }}
env:
COMPILER: ${{ matrix.compiler }}
run: |
cd ./rdsn
./run.sh build --compiler $COMPILER --skip_thirdparty
-
name: Compilation pegasus on Clang
if: ${{ matrix.compiler-family == 'clang' }}
env:
COMPILER: ${{ matrix.compiler }}
run: ./run.sh build --compiler $COMPILER --skip_thirdparty
-
name: Packaging Server
run: ./run.sh pack_server
106 changes: 106 additions & 0 deletions .github/thirdparty-regular-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
---
name: BuildThirdpartyDockerRegularly-build and publish thirdparty every week

on:
push:
paths:
- 'docker/thirdparties-src/**'
- 'docker/thirdparties-bin/**'
- '.github/workflows/thirdparty-regular-push.yml'

# for manually triggering workflow
workflow_dispatch:

# run for every week 2am UTC+8(Beijing)
schedule:
- cron: '0 18 * * 1'

jobs:
build_push_src_docker_images:
runs-on: ubuntu-latest
steps:
-
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
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: ./docker/thirdparties-src/Dockerfile
push: true
tags: |
apachepegasus/thirdparties-src
build-args: |
REGISTRY_REPO=apachepegasus
-
name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

build_push_bin_docker_images:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
osversion:
- ubuntu1604
- ubuntu1804
- ubuntu2004
#- centos6 is EOL
- centos7
steps:
-
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
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: ./docker/thirdparties-bin/Dockerfile
push: true
tags: |
apachepegasus/thirdparties-bin:${{ matrix.osversion }}
build-args: |
OS_VERSION=${{ matrix.osversion }}
-
name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
64 changes: 64 additions & 0 deletions docker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# Pegasus Docker

This project maintains the stuff you can use from building Pegasus docker images,
to deploying a standalone cluster of Pegasus containers on your local machine.

## Workflows

![Build and publish multi pegasus-build-env docker images](https://github.com/pegasus-kv/pegasus-docker/workflows/BuildCompilationEnvDocker-build%20and%20publish%20multi%20compilation%20os%20env/badge.svg?branch=master)

![Build and publish multi os env thirdparty docker images every week](https://github.com/pegasus-kv/pegasus-docker/workflows/BuildThirdpartyDockerRegularly-build%20and%20publish%20thirdparty%20every%20week/badge.svg?branch=master)

![Build pegasus/rdsn regularly based env and thirdparty docker everyday](https://github.com/pegasus-kv/pegasus-docker/workflows/BuildPegasusRegularly-build%20pegasus%20and%20rdsn%20on%20different%20env%20every%20day/badge.svg?branch=master)

## pegasus-build-env

Building environment for Pegasus compilation.

Github Actions automatically rebuilds and publishes build-env for every commit.

- `apachepegasus/build-env:centos7`
- `apachepegasus/build-env:ubuntu1604`
- `apachepegasus/build-env:ubuntu1804`
- `apachepegasus/build-env:ubuntu2004`

DockerHub: https://hub.docker.com/r/apachepegasus/build-env

The How-to-use Manual is at: http://pegasus.apache.org/docs/build/compile-by-docker/

## thirdparties-src

This image is to eliminate extra downloading of third-party sources of Pegasus.
It packages the downloaded sources into a zip in the container, so that
other repos can easily extract third-parties from the container (via `docker cp`),
without downloading from the cloud object storage.

- `apachepegasus/thirdparties-src`

## thirdparties-bin

This is a Docker image for Pegasus unit-testing. It prebuilts the thirdparty libraries,
so jobs based on this image can skip building third-parties.

- `apachepegasus/thirdparties-bin:centos7`
- `apachepegasus/thirdparties-bin:ubuntu1604`
- `apachepegasus/thirdparties-bin:ubuntu1804`
- `apachepegasus/thirdparties-bin:ubuntu2004`
Loading