forked from platypush/platypush
Make Dockerfiles work both within and outside a Platypush source dir.
If the Platypush setup.py is found in the current directory, then use that directory as the base for the new image. Otherwise, clone the repo on the fly and build the image from there.
This commit is contained in:
parent
0fd2992894
commit
8e05a7f4c9
5 changed files with 53 additions and 14 deletions
|
@ -1,6 +1,5 @@
|
||||||
services:
|
services:
|
||||||
platypush:
|
platypush:
|
||||||
container_name: platypush
|
|
||||||
restart: "always"
|
restart: "always"
|
||||||
command:
|
command:
|
||||||
- platypush
|
- platypush
|
||||||
|
|
|
@ -1,14 +1,24 @@
|
||||||
FROM alpine
|
FROM alpine
|
||||||
|
|
||||||
ADD . /install
|
|
||||||
WORKDIR /var/lib/platypush
|
|
||||||
|
|
||||||
ARG DOCKER_CTX=1
|
ARG DOCKER_CTX=1
|
||||||
ENV DOCKER_CTX=1
|
ENV DOCKER_CTX=1
|
||||||
|
WORKDIR /var/lib/platypush
|
||||||
|
|
||||||
RUN apk update && \
|
RUN --mount=type=bind,source=.,target=/curdir \
|
||||||
/install/platypush/install/scripts/alpine/install.sh && \
|
apk update && \
|
||||||
cd /install && pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
# If the current directory is the Platypush repository, then we can copy the existing files \
|
||||||
|
if grep 'name="platypush"' /curdir/setup.py >/dev/null 2>&1; \
|
||||||
|
then \
|
||||||
|
cp -r /curdir /install; \
|
||||||
|
# Otherwise, we need to clone the repository \
|
||||||
|
else \
|
||||||
|
apk add --no-cache git && \
|
||||||
|
git clone https://github.com/blacklight/platypush.git /install; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
RUN /install/platypush/install/scripts/alpine/install.sh && \
|
||||||
|
cd /install && \
|
||||||
|
pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
||||||
rm -rf /install && \
|
rm -rf /install && \
|
||||||
apk cache clean
|
apk cache clean
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
FROM debian
|
FROM debian
|
||||||
|
|
||||||
ADD . /install
|
|
||||||
WORKDIR /var/lib/platypush
|
WORKDIR /var/lib/platypush
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
@ -8,8 +7,19 @@ ENV DEBIAN_FRONTEND=noninteractive
|
||||||
ARG DOCKER_CTX=1
|
ARG DOCKER_CTX=1
|
||||||
ENV DOCKER_CTX=1
|
ENV DOCKER_CTX=1
|
||||||
|
|
||||||
RUN apt update && \
|
RUN --mount=type=bind,source=.,target=/curdir \
|
||||||
/install/platypush/install/scripts/debian/install.sh && \
|
apt update && \
|
||||||
|
# If the current directory is the Platypush repository, then we can copy the existing files \
|
||||||
|
if grep 'name="platypush"' /curdir/setup.py >/dev/null 2>&1; \
|
||||||
|
then \
|
||||||
|
cp -r /curdir /install; \
|
||||||
|
# Otherwise, we need to clone the repository \
|
||||||
|
else \
|
||||||
|
apt install -y git && \
|
||||||
|
git clone https://github.com/blacklight/platypush.git /install; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
RUN /install/platypush/install/scripts/debian/install.sh && \
|
||||||
cd /install && \
|
cd /install && \
|
||||||
pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
||||||
rm -rf /install && \
|
rm -rf /install && \
|
||||||
|
|
|
@ -1,11 +1,21 @@
|
||||||
FROM fedora
|
FROM fedora
|
||||||
|
|
||||||
ADD . /install
|
|
||||||
WORKDIR /var/lib/platypush
|
WORKDIR /var/lib/platypush
|
||||||
|
|
||||||
ARG DOCKER_CTX=1
|
ARG DOCKER_CTX=1
|
||||||
ENV DOCKER_CTX=1
|
ENV DOCKER_CTX=1
|
||||||
|
|
||||||
|
RUN --mount=type=bind,source=.,target=/curdir \
|
||||||
|
# If the current directory is the Platypush repository, then we can copy the existing files \
|
||||||
|
if grep 'name="platypush"' /curdir/setup.py >/dev/null 2>&1; \
|
||||||
|
then \
|
||||||
|
cp -r /curdir /install; \
|
||||||
|
# Otherwise, we need to clone the repository \
|
||||||
|
else \
|
||||||
|
dnf install -y git && \
|
||||||
|
git clone https://github.com/blacklight/platypush.git /install; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Enable the RPM Fusion repository
|
# Enable the RPM Fusion repository
|
||||||
RUN dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm && \
|
RUN dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm && \
|
||||||
/install/platypush/install/scripts/fedora/install.sh && \
|
/install/platypush/install/scripts/fedora/install.sh && \
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
FROM ubuntu
|
FROM ubuntu
|
||||||
|
|
||||||
ADD . /install
|
|
||||||
WORKDIR /var/lib/platypush
|
WORKDIR /var/lib/platypush
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
@ -8,8 +7,19 @@ ENV DEBIAN_FRONTEND=noninteractive
|
||||||
ARG DOCKER_CTX=1
|
ARG DOCKER_CTX=1
|
||||||
ENV DOCKER_CTX=1
|
ENV DOCKER_CTX=1
|
||||||
|
|
||||||
RUN apt update && \
|
RUN --mount=type=bind,source=.,target=/curdir \
|
||||||
/install/platypush/install/scripts/debian/install.sh && \
|
apt update && \
|
||||||
|
# If the current directory is the Platypush repository, then we can copy the existing files \
|
||||||
|
if grep 'name="platypush"' /curdir/setup.py >/dev/null 2>&1; \
|
||||||
|
then \
|
||||||
|
cp -r /curdir /install; \
|
||||||
|
# Otherwise, we need to clone the repository \
|
||||||
|
else \
|
||||||
|
apt install -y git && \
|
||||||
|
git clone https://github.com/blacklight/platypush.git /install; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
RUN /install/platypush/install/scripts/debian/install.sh && \
|
||||||
cd /install && \
|
cd /install && \
|
||||||
pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
pip install -U --no-input --no-cache-dir . --break-system-packages && \
|
||||||
rm -rf /install && \
|
rm -rf /install && \
|
||||||
|
|
Loading…
Reference in a new issue