Skip to content
Open

V2.0 #706

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
a7e8cdd
added r-band tile list
martinkilbinger Mar 30, 2026
a74d290
added init v2.0 script
martinkilbinger Mar 30, 2026
333b677
v2.0 scripts
martinkilbinger Mar 30, 2026
f4c4f95
addd proj libraries for skyproj (Dockerfile)
martinkilbinger Mar 30, 2026
c9a3655
Added 202604 tiles
martinkilbinger Apr 1, 2026
3595368
pipeline canfar updates
martinkilbinger Apr 1, 2026
30bb5f6
v2.0: running jobs 1 2
martinkilbinger Apr 1, 2026
609b99d
Merge remote-tracking branch 'upstream/develop' into v2.0
martinkilbinger Apr 1, 2026
1fe4410
running Fe
martinkilbinger Apr 1, 2026
10d39fa
running v2.0 to split exp merge headers
martinkilbinger Apr 5, 2026
696d48a
remove cdsclient from Dockerfile, now using astroquery
martinkilbinger Apr 5, 2026
96cfcc0
Merge branch 'v2.0' of github.com:martinkilbinger/shapepipe-1 into v2.0
martinkilbinger Apr 5, 2026
84bbd7d
v2.0 masking updated and fixed
martinkilbinger Apr 6, 2026
8a4affc
Merge remote-tracking branch 'origin/v2.0' into v2.0
martinkilbinger Apr 7, 2026
8e7cd1a
Created common Dockerfile.base for both standard and jupyter Dockerfiles
martinkilbinger Apr 7, 2026
9261488
Removed Dockerfile.base
martinkilbinger Apr 7, 2026
57972e5
Fixing Dockerfile
martinkilbinger Apr 7, 2026
f7e0334
v2.0 running until -j 32
martinkilbinger Apr 8, 2026
3bff6b3
Merge remote-tracking branch 'origin/v2.0' into v2.0
martinkilbinger Apr 8, 2026
cd3e8b4
towards 128
martinkilbinger Apr 16, 2026
be58050
v2.0 running until job 256, UNIONS (external) cat
martinkilbinger Apr 19, 2026
d7049ec
Fixed missing packages in pyproject, and proper use of base Dockerfile
martinkilbinger Apr 21, 2026
6815ee1
Merge remote-tracking branch 'origin/v2.0' into v2.0
martinkilbinger Apr 21, 2026
1f6c0b5
trying to fix CD
martinkilbinger Apr 21, 2026
2a31621
Merge remote-tracking branch 'upstream/develop' into v2.0
martinkilbinger Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions .github/workflows/deploy-image.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
name: Create and publish a Docker image

on: [push, workflow_dispatch]

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
BRANCH: ${{ github.ref }}

jobs:
build-and-push-image:
runs-on:
- ubuntu-latest
# - macos-latest
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
Expand All @@ -26,6 +23,8 @@ jobs:

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: network=host

- name: Extract metadata (tags, labels) for Docker
id: meta
Expand All @@ -42,10 +41,10 @@ jobs:

- name: Test
run: docker run --rm ${{ steps.meta.outputs.tags }} shapepipe_run -c /app/example/config.ini

- name: Push
uses: docker/build-push-action@v6
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
130 changes: 40 additions & 90 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,103 +1,53 @@
FROM python:3.12-slim-bookworm
FROM images.canfar.net/skaha/astroml:latest

LABEL Description="Conda-Free ShapePipe Docker Image"
ENV SHELL=/bin/bash
ENV QT_QPA_PLATFORM=offscreen
# Metadata
LABEL maintainer="martin.kilbinger@cea.fr"
LABEL description="ShapePipe base image with common dependencies"

# Install system dependencies
RUN apt-get update -y --quiet --fix-missing && \
apt-get dist-upgrade -y --quiet --fix-missing && \
apt-cache policy autconf && \
apt-get install -y --quiet \
apt-utils \
autoconf \
automake \
build-essential \
cmake \
curl \
wget \
ffmpeg \
g++ \
gcc \
gfortran \
git-lfs \
libatlas-base-dev \
libblas-dev \
liblapack-dev \
libcfitsio-dev \
libfftw3-bin \
libfftw3-dev \
libgl1-mesa-glx \
libgsl-dev \
libtool \
libtool-bin \
libtool-doc \
locales \
locate \
make \
openmpi-bin \
libopenmpi-dev \
libproj-dev \
proj-bin \
pkg-config \
protobuf-compiler \
psfex=3.21.1-1 \
source-extractor=2.25.0+ds-3 \
weightwatcher=1.12+dfsg-3 \
vim \
xterm && \
apt-get clean -y && \
apt-get autoremove --purge --quiet -y && \
rm -rf /var/lib/apt/lists/* /var/tmp/*
# Install system dependencies needed for ShapePipe and WeightWatcher
RUN apt-get update -o Acquire::ForceIPv4=true -y --quiet && \
apt-get install -y --no-install-recommends \
psfex source-extractor \
libproj-dev proj-bin && \
apt-get clean && rm -rf /var/lib/apt/lists/*

# Install CDS client by hand
# Build and install WeightWatcher from source
ARG WW_VERSION=1.12
RUN cd /tmp && \
curl -O http://cdsarc.u-strasbg.fr/ftp/pub/sw/cdsclient.tar.gz && \
tar xvfz cdsclient.tar.gz \
&& cd cdsclient-* \
&& ./configure && make && make install \
&& rm -rf /tmp/*
wget --no-check-certificate https://github.com/astromatic/weightwatcher/archive/refs/tags/${WW_VERSION}.tar.gz && \
tar -xzf ${WW_VERSION}.tar.gz && \
rm ${WW_VERSION}.tar.gz
RUN cd /tmp/weightwatcher-${WW_VERSION} && \
sed -i 's/^ prefstruct\tprefs;/extern prefstruct\tprefs;/' src/prefs.h && \
sed -i 's/^char\t\tgstr\[MAXCHAR\];/extern char\t\tgstr[MAXCHAR];/' src/globals.h && \
sed -i 's/^int\t\tbswapflag;/extern int\t\tbswapflag;/' src/fits/fitscat.h && \
sed -i '/preflist\.h/a prefstruct\tprefs;' src/prefs.c && \
sed -i '/xml\.h/a char\t\tgstr[MAXCHAR];' src/main.c && \
sed -i '/fitscat\.h/a int\t\tbswapflag;' src/fits/fitscat.c && \
./configure --quiet && \
make --quiet && \
make install

# Install python dependencies
# Ensure astroml:latest conda Python 3.12 is used (Docker RUN does not source conda init)
ENV PATH /opt/conda/bin:$PATH

# Upgrade pip and install tools not part of the ShapePipe package
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir \
astropy==6.1.0 \
cs_util==0.1.9 \
galsim==2.5.3 \
ipython==8.18.1 \
joblib==1.4.2 \
jupyterlab==4.3.1 \
matplotlib==3.8.4 \
mccd==1.2.4 \
modopt==1.6.1 \
mpi4py==4.0.3 \
numpy==1.26.4 \
numpydoc==1.2 \
pandas==2.2 \
pytest==8.3.3 \
pytest-cov==5.0.0 \
pytest-pycodestyle==2.4.1 \
pytest-pydocstyle==2.4.0 \
reproject==0.14.1 \
sf_tools==2.0.4 \
sip_tpv==1.1 \
skaha==1.7.0 \
sqlitedict==2.0.0 \
termcolor==1.1.0 \
tqdm==4.63.0 \
treecorr==5.1.1 \
vos==3.6.1.1 \
git+https://github.com/aguinot/ngmix@stable_version \
git+https://github.com/tobias-liaudat/Stile@v0.1
ipython==8.18.1 \
jupyterlab==4.3.1 \
snakemake==8.27.1

# Set working directory and copy source code
WORKDIR /app
COPY . /app/.
RUN chown -R root:root /app && chmod -R u+rwX /app

# Install shapepipe and symlink scripts
RUN pip install --no-cache-dir -e . && \
# Install ShapePipe and its dependencies (including fitsio optional extra)
RUN pip install --no-cache-dir -e ".[fitsio]" && \
for ext in .py .sh .bash; do \
for script in /app/scripts/*/*$ext; do \
link_name=`basename $script $ext`; \
ln -s $script /usr/local/bin/$link_name; \
done; \
for script in /app/scripts/*/*$ext; do \
link_name=$(basename $script $ext); \
ln -s $script /usr/local/bin/$link_name; \
done; \
done
7 changes: 7 additions & 0 deletions Dockerfile.jupyter
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Dockerfile for ShapePipe Jupyter Lab
# Uses the shared base image

FROM ghcr.io/martinkilbinger/shapepipe-1:v2.0

# Default command starts Jupyter Lab
ENTRYPOINT ["jupyter","lab","--ip=0.0.0.0","--port=8888","--no-browser","--allow-root"]
Loading