refactor: use .python-version for docker build
This commit is contained in:
parent
d385860ca9
commit
06e60fb212
4 changed files with 45 additions and 10 deletions
|
|
@ -6,20 +6,41 @@ cd "$RUN_DIR"
|
|||
|
||||
builddir=build
|
||||
|
||||
_latest_python_version() {
|
||||
filter="$1"
|
||||
filter_regex=$(echo "$filter" | sed 's/\./\\\\./')
|
||||
curl -sfL https://api.github.com/repos/python/cpython/git/refs/tags \
|
||||
| jq -r 'map(select(.ref | test("^refs/tags/v?'"$filter_regex"'($|\\.)")) | .ref | match("refs/tags/v?(.*)").captures[0].string)[]' \
|
||||
| grep -xE '[.0-9]+' \
|
||||
| sort --version-sort \
|
||||
| tail -n 1
|
||||
}
|
||||
|
||||
[ -z "${DEBUG:-}" ] || set -x
|
||||
|
||||
mkdir -p "$builddir"
|
||||
|
||||
python_version_filter=$(cat .python-version)
|
||||
python_version=$(_latest_python_version "$python_version_filter")
|
||||
|
||||
if [ -z "$python_version" ]; then
|
||||
echo >&2 "No Python version found matching the filter: $python_version_filter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
githash_short=$(git rev-parse --short HEAD)
|
||||
githash_long=$(git rev-parse HEAD)
|
||||
version="$githash_short"
|
||||
echo "$version" >"$builddir"/version
|
||||
|
||||
poetry export \
|
||||
--with=build \
|
||||
--output="$builddir"/requirements.txt
|
||||
|
||||
githash=$(git rev-parse --short HEAD)
|
||||
today=$(date -u '+%Y.%m.%d')
|
||||
version="${today}+${githash}"
|
||||
echo "$version" >"$builddir"/version
|
||||
|
||||
$DOCKER_BIN build \
|
||||
--pull \
|
||||
--tag "code.dumpr.org/ducklet/unwind":"$version" \
|
||||
--build-arg="PYTHON_VERSION=$python_version" \
|
||||
--label="python.version=$python_version" \
|
||||
--label="git.hash=$githash_long" \
|
||||
--tag="code.dumpr.org/ducklet/unwind":"$version" \
|
||||
.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh -eu
|
||||
|
||||
: "${DOCKER_BIN:=docker}"
|
||||
: "${UNWIND_PORT:=8097}"
|
||||
|
||||
cd "$RUN_DIR"
|
||||
|
||||
|
|
@ -8,11 +9,18 @@ cd "$RUN_DIR"
|
|||
|
||||
version=$(cat build/version)
|
||||
|
||||
localhost=127.0.0.1
|
||||
localport=8000
|
||||
netloc="$localhost:$localport"
|
||||
|
||||
echo >&2 "Unwind will be available on http://$netloc/
|
||||
"
|
||||
|
||||
$DOCKER_BIN run \
|
||||
--init \
|
||||
-it --rm \
|
||||
--read-only \
|
||||
--memory '500m' \
|
||||
--publish 127.0.0.1:8000:8000 \
|
||||
--publish "$netloc":"$UNWIND_PORT" \
|
||||
--volume "$RUN_DIR"/data:/data \
|
||||
"code.dumpr.org/ducklet/unwind":"$version"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue