Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F7066700
D3113.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
D3113.diff
View Options
diff --git a/docker/Dockerfile b/docker/Dockerfile
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -11,7 +11,8 @@
memcached \
postgresql-client \
wait-for-it \
- ngrep && \
+ ngrep \
+ rsync && \
apt-get install -y --no-install-recommends \
r-base-core \
r-cran-jsonlite && \
diff --git a/docker/README.md b/docker/README.md
--- a/docker/README.md
+++ b/docker/README.md
@@ -433,21 +433,6 @@
code). If the application you play with has autoreload support, there
is no need to restart the impacted container.)
-Note: if the docker fails to start when using local sources for one or more swh
-package, it's most probably due to permission problems on cache files. For
-example, if you have executed tests locally (using pytest or tox), you have
-cache files (__pycache__ etc.) that will prevent `pip install` from working
-within the docker.
-
-The solution is to clean these files and directories before trying to spawn the
-docker.
-
-```
-~/swh-environment$ find . -type d -name __pycache__ -exec rm -rf {} \;
-~/swh-environment$ find . -type d -name .tox -exec rm -rf {} \;
-~/swh-environment$ find . -type d -name .hypothesis -exec rm -rf {} \;
-```
-
### Using locally installed swh tools with docker
@@ -518,11 +503,6 @@
export COMPOSE_FILE=~/swh-environment/docker/docker-compose.yml:~/swh-environment/docker/docker-compose.override.yml
alias doco=docker-compose
-function swhclean {
- find ~/swh-environment -type d -name __pycache__ -exec rm -rf {} \;
- find ~/swh-environment -type d -name .tox -exec rm -rf {} \;
- find ~/swh-environment -type d -name .hypothesis -exec rm -rf {} \;
-}
EOF
```
@@ -543,11 +523,6 @@
- create an alias `doco` for `docker-compose` because this is way too
long to type,
-- add a `swhclean` shell function to clean your source directories so that
- there is no conflict with docker containers using local swh repositories (see
- below). This will delete any `.tox`, `__pycache__` and `.hypothesis`
- directory found in your swh-environment directory.
-
So now you can easily:
* Start the SWH platform:
diff --git a/docker/utils/pyutils.sh b/docker/utils/pyutils.sh
--- a/docker/utils/pyutils.sh
+++ b/docker/utils/pyutils.sh
@@ -4,9 +4,14 @@
echo Using pip from $(which pip)
if [[ -d /src ]] ; then
- for srcrepo in /src/swh-* ; do
+ tmpdir=`mktemp -d`
+ # Source directories might not be writeable, but building them writes
+ # in-tree; so we're copying them to a location guaranteed to be writeable.
+ rsync -a /src/ $tmpdir/ --exclude "*/__pycache__/" --exclude "*/.tox/" --exclude "*/.hypothesis/"
+ for srcrepo in $tmpdir/swh-* ; do
pip install $srcrepo
done
+ rm -rf $tmpdir
fi
echo Installed Python packages:
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Nov 5 2024, 6:39 PM (11 w, 14 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3222210
Attached To
D3113: Copy /src/ to a temporary directory before building.
Event Timeline
Log In to Comment