Merge pull request #73 from johnnychen94/jc/docker

[julia mirror] use StorageServer#v0.1.0.beta and remove jill dependency
This commit is contained in:
Yuxiang Zhang 2020-05-28 09:59:05 +08:00 committed by GitHub
commit 5a8a0957fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 15 deletions

View File

@ -2,30 +2,24 @@
# * https://github.com/tuna/tunasync-scripts/pull/71 # * https://github.com/tuna/tunasync-scripts/pull/71
# * https://github.com/tuna/issues/issues/837 # * https://github.com/tuna/issues/issues/837
# jill.py requires at least Python 3.6 # StorageServer.jl is used to set up a *static* storage server for julia packages, it requires at least Julia 1.4
FROM python:3.6 # The details of the storage protocol can be found in https://github.com/JuliaLang/Pkg.jl/issues/1377
FROM julia:1.4
LABEL description="A community maintained docker script to set up julia mirror easily." LABEL description="A community maintained docker script to set up julia mirror easily."
LABEL maintainer="Johnny Chen <johnnychen94@hotmail.com>" LABEL maintainer="Johnny Chen <johnnychen94@hotmail.com>"
RUN apt-get update && \
apt-get install -y \
git && \
rm -rf /var/lib/apt/lists/*
ENV JULIA_DEPOT_PATH="/tmp/julia" ENV JULIA_DEPOT_PATH="/tmp/julia"
ENV JULIA_STATIC_DIR="/julia/static" ENV JULIA_STATIC_DIR="/julia/static"
ENV JULIA_CLONES_DIR="/julia/clones" ENV JULIA_CLONES_DIR="/julia/clones"
# jill.py provides two functionalities:
# 1) mirror julia binary releases
# 2) install julia in one line
# FYI: the jill API is quite stable so the version doesn't matter much (it could be okay to set >=0.6.9)
RUN pip install --upgrade pip && \
pip install jill==0.6.9 && \
pip cache purge
# StorageServer.jl is used to set up a *static* storage server for julia packages, it requires at least Julia 1.4
# The details of the storage protocol can be found in https://github.com/JuliaLang/Pkg.jl/issues/1377
RUN jill install 1.4 --confirm
# StorageServer.jl is an experimental toolkit and it won't be registered in General # StorageServer.jl is an experimental toolkit and it won't be registered in General
# The API is likely to be changed in the future, so we fix the version here for stability consideration # The API is likely to be changed in the future, so we fix the version here for stability consideration
RUN julia -e 'using Pkg; pkg"add https://github.com/johnnychen94/StorageServer.jl#v0.1.0-beta.1"' RUN julia -e 'using Pkg; pkg"add https://github.com/johnnychen94/StorageServer.jl#v0.1.0-beta"'
RUN chown -R 2000 /tmp/julia/ RUN chown -R 2000 /tmp/julia/

View File

@ -6,5 +6,9 @@ cd "${TUNASYNC_WORKING_DIR}"
export JULIA_STATIC_DIR="$PWD/static" export JULIA_STATIC_DIR="$PWD/static"
export JULIA_CLONES_DIR="$PWD/clones" export JULIA_CLONES_DIR="$PWD/clones"
# update and mirror the General registry
git -C registries/General fetch --all
git -C registries/General reset --hard origin/master
exec julia -e "using StorageServer; mirror_tarball(\"registries/General\", [\"$BASE_URL\"])" exec julia -e "using StorageServer; mirror_tarball(\"registries/General\", [\"$BASE_URL\"])"