提交 75cdfa7d 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

fix docker deployg

上级 42320f76
......@@ -30,10 +30,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: make install
run: npm install
- name: Build the Docker image
run: ./scripts/docker.sh build
- name: Login to DockerHub Registry
run: echo ${{ secrets.DOCKER_PERSONAL_ACCESS_TOKEN }} | docker login -u zixia --password-stdin
- name: Build the Docker image
run: docker build -t artifact_image .
- name: Deploy to Docker Hub
run: bash -x ./scripts/deploy-docker.sh artifact_image
run: ./scripts/docker.sh deploy
#!/usr/bin/env bash
set -eo pipefail
function deployVersion () {
SEMVER_MAJOR=$(node -e "console.log(require('semver').major('$VERSION'))")
SEMVER_MINOR=$(node -e "console.log(require('semver').minor('$VERSION'))")
TAG="$SEMVER_MAJOR.$SEMVER_MINOR"
echo "Deploying TAG=$TAG"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:${TAG}"
docker push "${IMAGE}:${TAG}"
}
function deployLatest () {
echo "Deploying IMAGE=$IMAGE latest"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:latest"
docker push "${IMAGE}:latest"
}
function deployNext () {
echo "Deploying IMAGE=$IMAGE next"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:next"
docker push "${IMAGE}:next"
}
function main () {
if [ -z "$1" ]; then
>&2 echo -e "Missing argument.\nUsage: $0 ARTIFACT_IMAGE"
exit 1
fi
ARTIFACT_IMAGE=$1
IMAGE=$(cat IMAGE)
VERSION=$(cat VERSION)
deployVersion
if npx --package @chatie/semver semver-is-prod "$VERSION"; then
deployLatest
else
deployLatest
fi
}
main "$@"
#!/bin/bash
#
# 1. CircleCI with `Btrfs volume error`
# https://circleci.com/docs/docker-btrfs-error/
#
set -e
imageName='wechaty:test'
# Shellcheck - https://github.com/koalaman/shellcheck/wiki/SC2086
options=('--rm')
[ -n "$CIRCLECI" ] && options=('--rm=false')
[ -n "$NO_CACHE" ] && options+=('--no-cache')
declare -i ret=0
case "$1" in
build | '')
echo docker build "${options[@]}" -t "$imageName" .
exec docker build "${options[@]}" -t "$imageName" .
# echo docker build "${options[@]}" -t "${imageName}:onbuild" -f Dockerfile.onbuild .
# exec docker build "${options[@]}" -t "${imageName}:onbuild" -f Dockerfile.onbuild .
ret=$?
;;
test)
echo "Testing the docker image behaviors to make sure it works as expected..."
echo "bats tests/"
IMAGE_NAME="$imageName" bats tests/
echo
echo
echo docker run -i "${options[@]}" -v /dev/shm:/dev/shm "$imageName" test
exec docker run -i "${options[@]}" -v /dev/shm:/dev/shm "$imageName" test
ret=$?
;;
clean)
docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm || true
docker images | grep none | awk '{print $3}' | xargs docker rmi
;;
*)
echo docker run -ti "${options[@]}" -v /dev/shm:/dev/shm "$imageName" "$@"
exec docker run -ti "${options[@]}" -v /dev/shm:/dev/shm "$imageName" "$@"
;;
esac
[ "$ret" -ne 0 ] && {
echo "ERROR: exec return $ret ???"
exit $ret
set -eo pipefail
function deployVersion () {
ARTIFACT_IMAGE=$1
IMAGE=$2
VERSION=$3
SEMVER_MAJOR=$(node -e "console.log(require('semver').major('$VERSION'))")
SEMVER_MINOR=$(node -e "console.log(require('semver').minor('$VERSION'))")
TAG="$SEMVER_MAJOR.$SEMVER_MINOR"
echo "Deploying TAG=$TAG"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:${TAG}"
docker push "${IMAGE}:${TAG}"
}
function deployLatest () {
ARTIFACT_IMAGE=$1
IMAGE=$2
echo "Deploying IMAGE=$IMAGE latest"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:latest"
docker push "${IMAGE}:latest"
}
function deployNext () {
ARTIFACT_IMAGE=$1
IMAGE=$2
echo "Deploying IMAGE=$IMAGE next"
docker tag "${ARTIFACT_IMAGE}" "${IMAGE}:next"
docker push "${IMAGE}:next"
}
function main () {
artifactImage='wechaty:test'
dockerImage='zixia/wechaty'
# Shellcheck - https://github.com/koalaman/shellcheck/wiki/SC2086
options=('--rm')
[ -n "$NO_CACHE" ] && options+=('--no-cache')
declare -i ret=0
case "$1" in
build | '')
echo docker build "${options[@]}" -t "$artifactImage" .
exec docker build "${options[@]}" -t "$artifactImage" .
# echo docker build "${options[@]}" -t "${artifactImage}:onbuild" -f Dockerfile.onbuild .
# exec docker build "${options[@]}" -t "${artifactImage}:onbuild" -f Dockerfile.onbuild .
ret=$?
;;
test)
echo "Testing the docker image behaviors to make sure it works as expected..."
echo "bats tests/"
IMAGE_NAME="$artifactImage" bats tests/
echo
echo
echo docker run -i "${options[@]}" -v /dev/shm:/dev/shm "$artifactImage" test
exec docker run -i "${options[@]}" -v /dev/shm:/dev/shm "$artifactImage" test
ret=$?
;;
deploy)
version=$(npx pkg-jq -r .version)
deployVersion "$artifactImage" "$dockerImage" "$version"
if npx --package @chatie/semver semver-is-prod "$VERSION"; then
deployLatest "$artifactImage" "$dockerImage"
else
deployNext "$artifactImage" "$dockerImage"
fi
;;
clean)
docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm || true
docker images | grep none | awk '{print $3}' | xargs docker rmi
;;
*)
echo docker run -ti "${options[@]}" -v /dev/shm:/dev/shm "$artifactImage" "$@"
exec docker run -ti "${options[@]}" -v /dev/shm:/dev/shm "$artifactImage" "$@"
;;
esac
[ "$ret" -ne 0 ] && {
echo "ERROR: exec return $ret ???"
}
return $ret
}
main "$@"
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册