Skip to content

Commit 9fb7c51

Browse files
authored
Merge pull request #25 from jlab/small_qtp-vis
Small qtp vis
2 parents 826a413 + 6fae6b5 commit 9fb7c51

File tree

5 files changed

+91
-16
lines changed

5 files changed

+91
-16
lines changed

.github/workflows/buildContainer.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
docker:
1010
strategy:
1111
matrix:
12-
plugin: ["qp-deblur", "qtp-biom", "qp-target-gene", "qtp-sequencing", "nginx"]
12+
plugin: ["qp-deblur", "qtp-biom", "qp-target-gene", "qtp-sequencing", "nginx", "qtp-visualization"]
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: Checkout repository

Images/qtp-visualization/qtp-visualization.dockerfile

Lines changed: 58 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
FROM ubuntu:24.04
1+
# VERSION: 2025.08.29
2+
3+
FROM ubuntu:24.04 AS builder
24

35
ARG MINIFORGE_VERSION=24.1.2-0
6+
ARG QIIME2RELEASE=2023.5
47

58
ENV CONDA_DIR=/opt/conda
69
ENV PATH=${CONDA_DIR}/bin:${PATH}
@@ -29,10 +32,19 @@ RUN conda install tornado
2932
COPY trigger.py /trigger.py
3033

3134
# Download qiime2 yaml (make sure to use a qiime2 version that is able to visualize qiime artifacts of the correct version)
32-
RUN wget --quiet https://data.qiime2.org/distro/core/qiime2-2023.5-py38-linux-conda.yml
35+
RUN wget --quiet https://data.qiime2.org/distro/core/qiime2-${QIIME2RELEASE}-py38-linux-conda.yml
36+
37+
RUN sed -n '/channels/,/dependencies/p' qiime2-${QIIME2RELEASE}-py38-linux-conda.yml > tinyq2.yml && \
38+
echo " - q2-metadata=${QIIME2RELEASE}" >> tinyq2.yml && \
39+
echo " - q2-mystery-stew=${QIIME2RELEASE}" >> tinyq2.yml && \
40+
echo " - q2-types=${QIIME2RELEASE}" >> tinyq2.yml && \
41+
echo " - q2cli=${QIIME2RELEASE}" >> tinyq2.yml && \
42+
echo " - q2templates=${QIIME2RELEASE}" >> tinyq2.yml && \
43+
echo " - typeguard=2.13.3" >> tinyq2.yml && \
44+
echo " - qiime2" >> tinyq2.yml
3345

3446
# Create conda env
35-
RUN conda env create --name qtp-visualization -y --file qiime2-2023.5-py38-linux-conda.yml
47+
RUN conda config --set channel_priority strict && conda env create --name qtp-visualization -y --file tinyq2.yml
3648
# Make RUN commands use the new environment:
3749
# append --format docker to the build command, see https://github.com/containers/podman/issues/8477
3850
SHELL ["conda", "run", "-p", "/opt/conda/envs/qtp-visualization", "/bin/bash", "-c"]
@@ -41,34 +53,67 @@ ENV LC_ALL=C.UTF-8
4153
ENV LANG=C.UTF-8
4254

4355
RUN pip install -U pip
44-
RUN pip install https://github.com/qiita-spots/qiita_client/archive/master.zip
45-
RUN pip install https://github.com/qiita-spots/qiita-files/archive/master.zip
56+
#RUN pip install https://github.com/qiita-spots/qiita_client/archive/master.zip
57+
RUN git clone -b uncouplePlugins https://github.com/jlab/qiita_client.git
58+
RUN sed -i "s/f'Entered BaseQiitaPlugin._register_command({command.name})'/'Entered BaseQiitaPlugin._register_command(%s)' % command.name/" qiita_client/qiita_client/plugin.py
59+
RUN cd qiita_client && pip install --no-cache-dir .
60+
61+
#RUN pip install https://github.com/qiita-spots/qiita-files/archive/master.zip
62+
RUN git clone -b master https://github.com/jlab/qiita-files.git
63+
RUN cd /qiita-files && pip install -e . -v
64+
4665
RUN git clone https://github.com/qiita-spots/qtp-visualization.git
47-
WORKDIR qtp-visualization
66+
WORKDIR /qtp-visualization
67+
RUN sed -i "s|'qiita_client', 'click >= 3.3', 'qiime2'|'click >= 3.3'|" setup.py
4868
RUN pip install -e .
4969
RUN pip install --upgrade certifi
5070
RUN pip install pip-system-certs
5171

52-
# TODO: should the plugin get the server configuration?!
53-
RUN export QIITA_CONFIG_FP=/qiita/config_qiita_oidc.cfg
54-
5572
WORKDIR /
5673

74+
RUN repo=q2-metadata; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.0.tar.gz | tar -xz --strip-components=1 -C /$repo
75+
RUN repo=q2-mystery-stew; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.0.tar.gz | tar -xz --strip-components=1 -C /$repo
76+
RUN repo=q2-types; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.0.tar.gz | tar -xz --strip-components=1 -C /$repo
77+
RUN repo=q2cli; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.1.tar.gz | tar -xz --strip-components=1 -C /$repo
78+
RUN repo=q2templates; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.0.tar.gz | tar -xz --strip-components=1 -C /$repo
79+
RUN repo=qiime2; mkdir -p /$repo && wget -O- https://github.com/qiime2/$repo/archive/refs/tags/${QIIME2RELEASE}.1.tar.gz | tar -xz --strip-components=1 -C /$repo
80+
81+
COPY requirements.txt ./requirements.txt
82+
RUN conda install cython
83+
RUN pip wheel --no-cache-dir --wheel-dir /wheels -r requirements.txt
84+
RUN pip install iow
85+
86+
87+
88+
# ==========================
89+
# Stage 2: Runtime
90+
# ==========================
91+
FROM python:3.8-slim
92+
93+
# python package compile in build stage
94+
COPY --from=builder /wheels /wheels
95+
96+
RUN pip install --no-cache-dir /wheels/* \
97+
&& rm -rf rm -rf `find /usr/local/lib/python3.8/site-packages -type d -name "tests" | grep -v numpy`
98+
5799
COPY start_qtp-visualization.sh .
58100
RUN chmod 755 start_qtp-visualization.sh
59101

60102
RUN mkdir -p /unshared_plugins
61103
ENV QIITA_PLUGINS_DIR=/unshared_plugins/
62104

105+
COPY trigger_noconda.py /trigger.py
106+
63107
## Export cert and config filepaths
64108
COPY qiita_server_certificates/qiita_server_certificates.pem /qiita_server_certificates/qiita_server_certificates.pem
65109
ENV REQUESTS_CA_BUNDLE=/qiita_server_certificates/qiita_server_certificates.pem
66110
ENV SSL_CERT_FILE=/qiita_server_certificates/qiita_server_certificates.pem
67111

68-
#RUN export QIITA_ROOTCA_CERT=/unshared_certificates/ci_rootca.crt
69-
RUN chmod u+x /qtp-visualization/scripts/configure_visualization_types /qtp-visualization/scripts/start_visualization_types
112+
RUN chmod u+x /usr/local/bin/configure_visualization_types /usr/local/bin/start_visualization_types
70113
COPY qiita_server_certificates/*_server.* /qiita_server_certificates/
71-
RUN /qtp-visualization/scripts/configure_visualization_types --env-script "true" --server-cert `find /qiita_server_certificates/ -name "*_server.crt" -type f`
114+
# qiime2 expects to have a CONDA_PREFIX set, see https://github.com/qiime2/qiime2/blob/812fd09cf80b4ed76c1f39827ae2dba729448436/qiime2/sdk/parallel_config.py#L30
115+
ENV CONDA_PREFIX=/usr/local
116+
RUN configure_visualization_types --env-script "true" --server-cert `find /qiita_server_certificates/ -name "*_server.crt" -type f`
72117
RUN sed -i -E "s/^START_SCRIPT = .+/START_SCRIPT = python \/start_plugin.py qtp-visualization/" /unshared_plugins/*.conf
73118

74-
CMD ["./start_qtp-visualization.sh"]
119+
CMD ["./start_qtp-visualization.sh"]
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-e /q2-metadata
2+
-e /q2-mystery-stew
3+
-e /q2-types
4+
-e /q2cli
5+
-e /q2templates
6+
-e /qiime2
7+
8+
tornado
9+
pip-system-certs
10+
pyyaml
11+
decorator
12+
tzlocal
13+
bibtexparser
14+
psutil
15+
flufl.lock
16+
parsl
17+
appdirs
18+
tomlkit
19+
scikit-bio
20+
rnanorm
21+
seaborn
22+
jinja2
23+
ijson
24+
pyhmmer
25+
frictionless
26+
numpy
27+
28+
-e /qtp-visualization
29+
-e /qiita-files
30+
-e /qiita_client
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
22

3-
cd / && python trigger.py qtp-visualization start_visualization_types /qtp-visualization
3+
cd / && python trigger.py start_visualization_types
44

55
tail -f /dev/null

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ plugin: Images/qtp-biom/trigger.py Images/qp-deblur/trigger_noconda.py $(DIR_REF
5353
$(PODMAN_BIN) build $(TMPDIR)/ -f $(TMPDIR)/`basename $<` $(PODMAN_FLAGS) -t local-`basename $< | cut -d "." -f 1`
5454
touch .built_image_`basename $< | cut -d "." -f 1`
5555

56-
.built_image_qtp-visualization: Images/qtp-visualization/qtp-visualization.dockerfile Images/qtp-visualization/start_qtp-visualization.sh
56+
.built_image_qtp-visualization: Images/qtp-visualization/qtp-visualization.dockerfile Images/qtp-visualization/start_qtp-visualization.sh Images/qtp-visualization/requirements.txt
5757
tmpdir=$(TMPDIR) $(MAKE) plugin
5858
cp $^ $(TMPDIR)
5959
$(PODMAN_BIN) build $(TMPDIR)/ -f $(TMPDIR)/`basename $<` $(PODMAN_FLAGS) -t local-`basename $< | cut -d "." -f 1`

0 commit comments

Comments
 (0)