mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-10 19:42:58 +00:00
Refactor wiki hooks for Actions
This commit is contained in:
34
.github/workflows/docker.yml
vendored
34
.github/workflows/docker.yml
vendored
@@ -13,8 +13,21 @@ jobs:
|
||||
name: Build Docker Images
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repo
|
||||
- name: Clone Main Repo
|
||||
uses: actions/checkout@v2
|
||||
- name: Debug
|
||||
run: |
|
||||
pwd
|
||||
ls -al
|
||||
- name: Clone Wiki
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: ${{github.repository}}.wiki
|
||||
path: "${{github.repository}}.wiki"
|
||||
- name: Debug
|
||||
run: |
|
||||
pwd
|
||||
ls -al
|
||||
- name: Set Up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
@@ -25,10 +38,13 @@ jobs:
|
||||
make dev-env lint-install
|
||||
- name: Lint Dockerfiles
|
||||
run: make lint-all
|
||||
- name: Debug python
|
||||
run: which pytest
|
||||
- name: Build Docker Images
|
||||
run: make build-test-all
|
||||
run: make build/base-notebook test/base-notebook # build-test-all
|
||||
- name: Run Post-Build Hooks
|
||||
run: make hook/base-notebook #hooks-all
|
||||
env:
|
||||
COMMIT_MSG: "${{github.event.head_commit.message}}"
|
||||
WIKI_PATH: "${{runner.temp}}/${{github.repository}}.wiki"
|
||||
|
||||
push:
|
||||
name: Push Docker Images
|
||||
@@ -37,5 +53,11 @@ jobs:
|
||||
- build
|
||||
if: github.ref == 'refs/heads/master'
|
||||
steps:
|
||||
- name: TODO
|
||||
run: echo "todo"
|
||||
- name: Push Images
|
||||
run: make push-all
|
||||
# TODO: doesn't support working directory
|
||||
- name: Push Wiki
|
||||
uses: mikeal/publish-to-github-action@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_REPOSITORY: ${{github.repository}}.wiki
|
||||
|
34
Makefile
34
Makefile
@@ -76,6 +76,18 @@ dev/%: ## run a foreground container for a stack
|
||||
dev-env: ## install libraries required to build docs and run tests
|
||||
pip install -r requirements-dev.txt
|
||||
|
||||
hook/%: export COMMIT_MSG?=$(shell git log -1 --pretty=%B)
|
||||
hook/%: export GITHUB_SHA?=$(shell git rev-parse HEAD)
|
||||
hook/%: export WIKI_PATH?=./wiki
|
||||
hook/%: ## run post-build hooks for an image
|
||||
BUILD_TIMESTAMP="$$(date -u +%FT%TZ)" \
|
||||
DOCKER_REPO="$(OWNER)/$(notdir $@)" \
|
||||
IMAGE_NAME="$(OWNER)/$(notdir $@):latest" \
|
||||
IMAGE_SHORT_NAME="$(notdir $@)" \
|
||||
$(SHELL) $(notdir $@)/hooks/run_hook
|
||||
|
||||
hook-all: $(foreach I,$(ALL_IMAGES),hook/$(I) ) ## run post-build hooks for all images
|
||||
|
||||
lint/%: ARGS?=
|
||||
lint/%: ## lint the dockerfile(s) for a stack
|
||||
@echo "Linting Dockerfiles in $(notdir $@)..."
|
||||
@@ -121,6 +133,12 @@ pull/%: DARGS?=
|
||||
pull/%: ## pull a jupyter image
|
||||
docker pull $(DARGS) $(OWNER)/$(notdir $@)
|
||||
|
||||
push/%: DARGS?=
|
||||
push/%: ## push all tags for a jupyter image
|
||||
docker push $(DARGS) $(OWNER)/$(notdir $@)
|
||||
|
||||
push-all: $(foreach I,$(ALL_IMAGES),push/$(I) ) ## push all tagged images
|
||||
|
||||
run/%: DARGS?=
|
||||
run/%: ## run a bash in interactive mode in a stack
|
||||
docker run -it --rm $(DARGS) $(OWNER)/$(notdir $@) $(SHELL)
|
||||
@@ -129,22 +147,8 @@ run-sudo/%: DARGS?=
|
||||
run-sudo/%: ## run a bash in interactive mode as root in a stack
|
||||
docker run -it --rm -u root $(DARGS) $(OWNER)/$(notdir $@) $(SHELL)
|
||||
|
||||
tx-en: ## rebuild en locale strings and push to master (req: GH_TOKEN)
|
||||
@git config --global user.email "travis@travis-ci.org"
|
||||
@git config --global user.name "Travis CI"
|
||||
@git checkout master
|
||||
|
||||
@make -C docs clean gettext
|
||||
@cd docs && sphinx-intl update -p _build/gettext -l en
|
||||
|
||||
@git add docs/locale/en
|
||||
@git commit -m "[ci skip] Update en source strings (build: $$TRAVIS_JOB_NUMBER)"
|
||||
|
||||
@git remote add origin-tx https://$${GH_TOKEN}@github.com/jupyter/docker-stacks.git
|
||||
@git push -u origin-tx master
|
||||
|
||||
test/%: ## run tests against a stack (only common tests or common tests + specific tests)
|
||||
@if [ ! -d "$(notdir $@)/test" ]; then TEST_IMAGE="$(OWNER)/$(notdir $@)" pytest -m "not info" test; \
|
||||
else TEST_IMAGE="$(OWNER)/$(notdir $@)" pytest -m "not info" test $(notdir $@)/test; fi
|
||||
|
||||
test-all: $(foreach I,$(ALL_IMAGES),test/$(I)) ## test all stacks
|
||||
test-all: $(foreach I,$(ALL_IMAGES),test/$(I)) ## test all stacks
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
17
all-spark-notebook/hooks/manifest.tmpl → all-spark-notebook/hooks/run_hook
Normal file → Executable file
17
all-spark-notebook/hooks/manifest.tmpl → all-spark-notebook/hooks/run_hook
Normal file → Executable file
@@ -1,9 +1,24 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha as well as version of key runtimes
|
||||
# and packages.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
PY_VERSION_TAG="python-$(docker run --rm ${IMAGE_NAME} python --version 2>&1 | awk '{print $2}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$PY_VERSION_TAG"
|
||||
NB_VERSION_TAG="notebook-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-notebook --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${NB_VERSION_TAG%% }"
|
||||
LAB_VERSION_TAG="lab-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-lab --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${LAB_VERSION_TAG%%\r}"
|
||||
HUB_VERSION_TAG="hub-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyterhub --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${HUB_VERSION_TAG%%\r}"
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${PY_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${NB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${LAB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${HUB_VERSION_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,31 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [[ "$COMMIT_MSG" = *"skip ci"* || "$COMMIT_MSG" = *"ci skip"* ]]; then
|
||||
exit 1;
|
||||
fi
|
@@ -1,49 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply and push all tags
|
||||
source hooks/apply_tags
|
||||
docker push $DOCKER_REPO
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
56
base-notebook/hooks/run_hook
Executable file
56
base-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
PY_VERSION_TAG="python-$(docker run --rm ${IMAGE_NAME} python --version 2>&1 | awk '{print $2}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$PY_VERSION_TAG"
|
||||
NB_VERSION_TAG="notebook-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-notebook --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${NB_VERSION_TAG%% }"
|
||||
LAB_VERSION_TAG="lab-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-lab --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${LAB_VERSION_TAG%%\r}"
|
||||
HUB_VERSION_TAG="hub-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyterhub --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${HUB_VERSION_TAG%%\r}"
|
||||
|
||||
# Update index
|
||||
INDEX_FILE="${WIKI_PATH}/Home.md"
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${PY_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${NB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${LAB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${HUB_VERSION_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
||||
head -n 25 "$INDEX_FILE"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
||||
|
||||
cat "$MANIFEST_FILE"
|
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha as well as version of key runtimes
|
||||
# and packages.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
PY_VERSION_TAG="python-$(docker run --rm ${IMAGE_NAME} python --version 2>&1 | awk '{print $2}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$PY_VERSION_TAG"
|
||||
R_VERSION_TAG="r-$(docker run --rm -a STDOUT ${IMAGE_NAME} R --version | sed -n 1p | awk '{print $3}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${R_VERSION_TAG%%\r}"
|
||||
JULIA_VERSION_TAG="julia-$(docker run --rm -a STDOUT ${IMAGE_NAME} julia --version | awk '{print $3}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${JULIA_VERSION_TAG%%\r}"
|
||||
NB_VERSION_TAG="notebook-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-notebook --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${NB_VERSION_TAG%% }"
|
||||
LAB_VERSION_TAG="lab-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-lab --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${LAB_VERSION_TAG%%\r}"
|
||||
HUB_VERSION_TAG="hub-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyterhub --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${HUB_VERSION_TAG%%\r}"
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${PY_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${JULIA_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${R_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${NB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${LAB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${HUB_VERSION_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,51 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Julia Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} julia -E 'using InteractiveUtils; versioninfo()')
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} julia -E 'import Pkg; Pkg.status()')
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## R Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --silent -e 'installed.packages(.Library)[, c(1,3)]')
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply and push all tags
|
||||
source hooks/apply_tags
|
||||
docker push $DOCKER_REPO
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
78
datascience-notebook/hooks/run_hook
Executable file
78
datascience-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
PY_VERSION_TAG="python-$(docker run --rm ${IMAGE_NAME} python --version 2>&1 | awk '{print $2}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$PY_VERSION_TAG"
|
||||
R_VERSION_TAG="r-$(docker run --rm -a STDOUT ${IMAGE_NAME} R --version | sed -n 1p | awk '{print $3}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${R_VERSION_TAG%%\r}"
|
||||
JULIA_VERSION_TAG="julia-$(docker run --rm -a STDOUT ${IMAGE_NAME} julia --version | awk '{print $3}')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${JULIA_VERSION_TAG%%\r}"
|
||||
NB_VERSION_TAG="notebook-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-notebook --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${NB_VERSION_TAG%% }"
|
||||
LAB_VERSION_TAG="lab-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyter-lab --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${LAB_VERSION_TAG%%\r}"
|
||||
HUB_VERSION_TAG="hub-$(docker run --rm -a STDOUT ${IMAGE_NAME} jupyterhub --version | tr -d '\r')"
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:${HUB_VERSION_TAG%%\r}"
|
||||
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${PY_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${JULIA_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${R_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${NB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${LAB_VERSION_TAG}\`<br />\`jupyter/${IMAGE_SHORT_NAME}:${HUB_VERSION_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Julia Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} julia -E 'using InteractiveUtils; versioninfo()')
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} julia -E 'import Pkg; Pkg.status()')
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## R Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --silent -e 'installed.packages(.Library)[, c(1,3)]')
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,31 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
45
minimal-notebook/hooks/run_hook
Executable file
45
minimal-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,37 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Apache Spark
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} bash -c '$SPARK_HOME/bin/spark-submit --version' 2>&1)
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
51
pyspark-notebook/hooks/run_hook
Executable file
51
pyspark-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Apache Spark
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} bash -c '$SPARK_HOME/bin/spark-submit --version' 2>&1)
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,41 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## R Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --silent -e 'installed.packages(.Library)[, c(1,3)]')
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
55
r-notebook/hooks/run_hook
Executable file
55
r-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## R Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} R --silent -e 'installed.packages(.Library)[, c(1,3)]')
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,31 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
45
scipy-notebook/hooks/run_hook
Executable file
45
scipy-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,2 +0,0 @@
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "$INDEX_FILE"
|
@@ -1,31 +0,0 @@
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* DockerHub build code: ${BUILD_CODE}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${SOURCE_COMMIT}](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Tag the latest build with the short git sha. Push the tag in addition
|
||||
# to the "latest" tag already pushed.
|
||||
GIT_SHA_TAG=${SOURCE_COMMIT:0:12}
|
||||
docker tag $IMAGE_NAME $DOCKER_REPO:$GIT_SHA_TAG
|
||||
docker push $DOCKER_REPO:$GIT_SHA_TAG
|
||||
|
||||
# Create a working directory.
|
||||
BUILD_TIMESTAMP=$(date -u +%FT%TZ)
|
||||
WORKDIR=$(mktemp -d)
|
||||
GIT_URI="git@github.com:jupyter/docker-stacks.wiki.git"
|
||||
GIT_SANDBOX="${WORKDIR}/docker-stacks.wiki"
|
||||
IMAGE_SHORT_NAME=$(basename $DOCKER_REPO)
|
||||
MANIFEST_FILE="${GIT_SANDBOX}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
INDEX_FILE="${GIT_SANDBOX}/Home.md"
|
||||
|
||||
# Configure git so it can push back to GitHub.
|
||||
eval $(ssh-agent -s)
|
||||
ssh-add <(base64 -d <(echo "$DEPLOY_KEY"))
|
||||
ssh-add -l
|
||||
git config --global user.email "jupyter@googlegroups.com"
|
||||
git config --global user.name "Jupyter Docker Stacks"
|
||||
|
||||
# Glone the GitHub project wiki.
|
||||
pushd "$WORKDIR"
|
||||
git clone "$GIT_URI"
|
||||
popd
|
||||
|
||||
# Render the build manifest template.
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
source hooks/manifest.tmpl
|
||||
source hooks/index.tmpl
|
||||
|
||||
# Push the wiki update back to GitHub.
|
||||
pushd "$GIT_SANDBOX"
|
||||
git add .
|
||||
git commit -m "DOC: Build ${MANIFEST_FILE}"
|
||||
git push -u origin master
|
||||
popd
|
||||
|
||||
# Shutdown the ssh agent for good measure.
|
||||
ssh-agent -k
|
||||
|
||||
# Invoke all downstream build triggers.
|
||||
set +e
|
||||
for url in $(echo $NEXT_BUILD_TRIGGERS | sed "s/,/ /g")
|
||||
do
|
||||
curl -X POST $url
|
||||
done
|
45
tensorflow-notebook/hooks/run_hook
Executable file
45
tensorflow-notebook/hooks/run_hook
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Apply tags
|
||||
GIT_SHA_TAG=${GITHUB_SHA:0:12}
|
||||
docker tag $IMAGE_NAME "$DOCKER_REPO:$GIT_SHA_TAG"
|
||||
|
||||
# Update index
|
||||
INDEX_ROW="|\`${BUILD_TIMESTAMP}\`|\`jupyter/${IMAGE_SHORT_NAME}:${GIT_SHA_TAG}\`|[Git diff](https://github.com/jupyter/docker-stacks/commit/${SOURCE_COMMIT})<br />[Dockerfile](https://github.com/jupyter/docker-stacks/blob/${SOURCE_COMMIT}/${IMAGE_SHORT_NAME}/Dockerfile)<br />[Build manifest](./${IMAGE_SHORT_NAME}-${GIT_SHA_TAG})|"
|
||||
sed "/|-|/a ${INDEX_ROW}" -i "${WIKI_PATH}/Home.md"
|
||||
|
||||
# Build manifest
|
||||
MANIFEST_FILE="${WIKI_PATH}/manifests/${IMAGE_SHORT_NAME}-${GIT_SHA_TAG}.md"
|
||||
mkdir -p $(dirname "$MANIFEST_FILE")
|
||||
|
||||
cat << EOF > "$MANIFEST_FILE"
|
||||
* Build datetime: ${BUILD_TIMESTAMP}
|
||||
* Docker image: ${DOCKER_REPO}:${GIT_SHA_TAG}
|
||||
* Docker image size: $(docker images ${IMAGE_NAME} --format "{{.Size}}")
|
||||
* Git commit SHA: [${GITHUB_SHA}](https://github.com/jupyter/docker-stacks/commit/${GITHUB_SHA})
|
||||
* Git commit message:
|
||||
\`\`\`
|
||||
${COMMIT_MSG}
|
||||
\`\`\`
|
||||
|
||||
## Python Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} python --version)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda info)
|
||||
\`\`\`
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} conda list)
|
||||
\`\`\`
|
||||
|
||||
## Apt Packages
|
||||
|
||||
\`\`\`
|
||||
$(docker run --rm ${IMAGE_NAME} apt list --installed)
|
||||
\`\`\`
|
||||
EOF
|
Reference in New Issue
Block a user