Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ To run the dev environment, install [Docker](https://docs.docker.com/get-docker/
Once installed clone this repo and run docker compose:

```bash
git clone --recurse-submodules https://github.com/Helioviewer-Project/helioviewer.org-docker.git
git clone --recurse-submodules https://github.com/dgarciabriseno/helioviewer.org-docker.git
cd helioviewer.org-docker
git checkout jpip
docker compose up -d --wait
```

Expand Down
8 changes: 8 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,14 @@ services:
target: /var/www/api.helioviewer.org
- jp2_volume:/tmp/jp2
- cache:/var/www/helioviewer.org/cache
jpip:
image: dgarciabriseno/helioviewer-jpip
build:
dockerfile: ./compose/dockerfiles/esajpip.Dockerfile
ports:
- 8090:8090
volumes:
- jp2_volume:/home/esajpip/images
cli:
image: dgarciabriseno/helioviewer-cli-dev
build:
Expand Down
23 changes: 14 additions & 9 deletions compose/dockerfiles/cli.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,27 @@ WORKDIR /root
COPY api/install/kakadu/Kakadu_v6_4_1-00781N_Linux-64-bit-Compiled.tar.gz /root/kdu.tar.gz
RUN tar xzf kdu.tar.gz

FROM alpine
FROM --platform=linux/x86_64 alpine
# set home to future user home directory
ENV HOME=/home/admin

# install dependencies and setup kakadu
COPY --from=builder /root/bin/* /usr/local/bin
COPY --from=builder /root/lib/* /usr/lib
WORKDIR $HOME
RUN adduser -D admin \
&& mkdir -p /tmp/jp2 && chown -R admin:admin /tmp/jp2 \
&& apk update \
&& apk add --virtual build-deps gcc python3-dev musl-dev mariadb-dev \
&& apk add --no-cache python3 expect gcompat mariadb-connector-c \
&& python3 -m venv venv \
&& venv/bin/pip install --no-cache-dir numpy sunpy matplotlib scipy glymur mysqlclient \
&& apk del --no-cache build-deps
RUN <<EOF
adduser -D admin
mkdir -p /tmp/jp2
apk update
apk add --virtual build-deps gcc python3-dev musl-dev mariadb-dev
apk add --no-cache python3 expect gcompat mariadb-connector-c
python3 -m venv venv
# lxml 5.2.0 is broken on x86 emulation on mac
venv/bin/pip install --no-cache-dir numpy sunpy matplotlib scipy glymur mysqlclient lxml==5.1.1
apk del --no-cache build-deps
chown -R admin:admin /tmp/jp2
chown -R admin:admin $HOME
EOF

WORKDIR $HOME
# Copy remaining startup scripts
Expand Down
29 changes: 29 additions & 0 deletions compose/dockerfiles/esajpip.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM alpine:3.19 as builder
RUN <<EOF
apk update
apk add libgsf-dev git g++ cmake make
git clone https://github.com/Helioviewer-Project/esajpip-SWHV.git
mkdir build && cd build
cmake ../esajpip-SWHV/ -DCMAKE_INSTALL_PREFIX=/home/esajpip -DSWHV_PORT_JPIP=8090 -DSWHV_DIR_IMAGE=/home/esajpip/images -DSWHV_DIR_LOG=/home/esajpip/log
make -j$(nproc) install
cd /home/esajpip
tar zcf /esajpip.tar.gz lib server
EOF

FROM alpine:3.19
COPY --from=builder /esajpip.tar.gz /esajpip.tar.gz
RUN <<EOF
apk update
apk add --no-cache libgsf libstdc++
adduser -D esajpip
cd /home/esajpip
mv /esajpip.tar.gz .
tar xf esajpip.tar.gz
rm esajpip.tar.gz
EOF
VOLUME ["/home/esajpip/images"]
RUN ln -s /home/esajpip/images /tmp/jp2

WORKDIR /home/esajpip/server/esajpip
USER esajpip
ENTRYPOINT ["/home/esajpip/server/esajpip/esajpip"]
2 changes: 2 additions & 0 deletions compose/scripts/api_startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ popd
bash /root/api_config.sh

chmod 777 /var/www/api.helioviewer.org/log
mkdir -p /tmp/jp2/movies
chmod 777 /tmp/jp2/movies

source /etc/apache2/envvars
touch $READY_FILE
Expand Down
2 changes: 1 addition & 1 deletion compose/scripts/headless_setup.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/expect -f

set timeout 5
set timeout 30
spawn python3 api/install/install.py

expect "Location" { send "/tmp/jp2\r" }
Expand Down