try to build docker for rpi

pull/125/head
Michel Promonet 5 years ago
parent 2cb3762ab5
commit c9c121306a

@ -1,9 +1,13 @@
defaults: &defaults
working_directory: /v4l2rtspserver
docker:
- image: heroku/heroku:18
version: 2
jobs:
build_x86_64:
working_directory: ~/v4l2rtspserver
docker:
- image: heroku/heroku:16
<<: *defaults
steps:
- checkout
- run: apt-get update; apt-get install -y --no-install-recommends cmake autoconf automake libtool git make g++ liblog4cpp5-dev libasound2-dev pkg-config
@ -16,9 +20,8 @@ jobs:
- distrib
build_rpi:
working_directory: ~/v4l2rtspserver
docker:
- image: heroku/heroku:16
<<: *defaults
steps:
- checkout
- run: apt-get update; apt-get install -y --no-install-recommends cmake autoconf automake libtool git make pkg-config
@ -33,9 +36,8 @@ jobs:
- distrib
build_mips:
working_directory: ~/v4l2rtspserver
docker:
- image: heroku/heroku:16
<<: *defaults
steps:
- checkout
- run: apt-get update; apt-get install -y --no-install-recommends cmake autoconf automake libtool git make g++-mips-linux-gnu pkg-config
@ -48,9 +50,8 @@ jobs:
- distrib
store_artifact:
working_directory: ~/v4l2rtspserver
docker:
- image: heroku/heroku:16
<<: *defaults
steps:
- attach_workspace:
at: /
@ -58,9 +59,8 @@ jobs:
path: /distrib
github_release:
working_directory: ~/v4l2rtspserver
docker:
- image: heroku/heroku:16
<<: *defaults
steps:
- attach_workspace:
at: /
@ -71,6 +71,53 @@ jobs:
name: "Deploy to Github"
command: ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME $CIRCLE_TAG /distrib
# -------------------------------------
# publish docker amd64
# -------------------------------------
publish_docker_linuxamd64:
machine:
docker_layer_caching: true
steps:
- checkout
- run: git submodule update --init
- run:
command: |
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-amd64 -f Dockerfile .
sudo docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-amd64
# -------------------------------------
# publish docker arm
# -------------------------------------
publish_docker_linuxarm32v7:
machine:
docker_layer_caching: true
steps:
- checkout
- run: git submodule update --init
- run:
command: |
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
sudo docker build --pull -t $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-arm32v7 -f Dockerfile.rpi .
sudo docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-arm32v7
# -------------------------------------
# publish docker manifest
# -------------------------------------
publish_docker_multiarch:
machine:
image: circleci/classic:201808-01
steps:
- run:
command: |
mkdir $HOME/.docker
sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json'
#
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
docker manifest create --amend $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-amd64 $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-arm32v7
docker manifest annotate $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-amd64 --os linux --arch amd64
docker manifest annotate $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest-arm32v7 --os linux --arch arm --variant v7
docker manifest push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:latest -p
workflows:
version: 2
@ -106,3 +153,21 @@ workflows:
ignore: /.*/
tags:
only: /.*/
docker:
jobs:
- publish_docker_linuxamd64:
filters:
tags:
only: /.*/
- publish_docker_linuxarm32v7:
filters:
tags:
only: /.*/
- publish_docker_multiarch:
requires:
- publish_docker_linuxamd64
- publish_docker_linuxarm32v7
filters:
tags:
only: /.*/

@ -0,0 +1,22 @@
FROM debian as builder
LABEL maintainer michel.promonet@free.fr
WORKDIR /v4l2rtspserver
COPY . /v4l2rtspserver
RUN apt-get update && apt-get install -y --no-install-recommends g++ autoconf automake libtool xz-utils cmake make liblog4cpp5-dev pkg-config git wget \
&& wget -qO- https://releases.linaro.org/components/toolchain/binaries/6.4-2018.05/arm-linux-gnueabihf/gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz | tar xJ \
&& export PATH=$(pwd)/gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabihf/bin:$PATH \
&& cmake -DCMAKE_TOOLCHAIN_FILE=raspberry.toolchain . && make install \
&& apt-get clean && rm -rf /var/lib/apt/lists/
FROM balenalib/rpi-raspbian
WORKDIR /usr/local/share/v4l2rtspserver
COPY --from=builder /usr/local/bin/ /usr/local/bin/
EXPOSE 8554
ENTRYPOINT [ "/usr/local/bin/v4l2rtspserver" ]
CMD [ "-S -P ${PORT}" ]
Loading…
Cancel
Save