ADD: initial commit
This commit is contained in:
commit
77125cdb30
32
Containerfile
Normal file
32
Containerfile
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
FROM docker.io/library/golang:alpine AS builder
|
||||||
|
#
|
||||||
|
LABEL org.opencontainers.image.source=https://github.com/skx/rss2email/
|
||||||
|
|
||||||
|
# Ensure we have git
|
||||||
|
RUN apk update && apk add --no-cache git
|
||||||
|
|
||||||
|
# checkout rss2email
|
||||||
|
RUN git clone https://github.com/skx/rss2email.git $GOPATH/src/github.com/skx/rss2email/
|
||||||
|
|
||||||
|
# Create a working-directory
|
||||||
|
WORKDIR $GOPATH/src/github.com/skx/rss2email/
|
||||||
|
|
||||||
|
# Build the binary.
|
||||||
|
RUN go build -o /go/bin/rss2email
|
||||||
|
|
||||||
|
FROM alpine
|
||||||
|
|
||||||
|
RUN apk update && apk add --no-cache msmtp tini bash
|
||||||
|
|
||||||
|
# Create a working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the binary.
|
||||||
|
COPY --from=builder /go/bin/rss2email /app/
|
||||||
|
ADD scripts/createMSMTPconfig.sh /createMSMTPconfig.sh
|
||||||
|
ADD scripts/entryPoint.sh /entryPoint.sh
|
||||||
|
|
||||||
|
RUN chmod +x /entryPoint.sh
|
||||||
|
RUN chmod +x /createMSMTPconfig.sh
|
||||||
|
|
||||||
|
ENTRYPOINT ["/sbin/tini", "--", "/entryPoint.sh"]
|
21
License
Normal file
21
License
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) [year] [fullname]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
50
README.md
Normal file
50
README.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# RSS2Email Container Image
|
||||||
|
|
||||||
|
This repository contains the Containerfile and associated scripts for a container image that runs [rss2email](https://github.com/skx/rss2email).
|
||||||
|
|
||||||
|
The Containerfile is heavily based on the Dockerfile provided by [rss2email](https://github.com/skx/rss2email).
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
- Dominik Meyer <dmeyer@federationhq.de>
|
||||||
|
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Buildah
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Building the Container Image
|
||||||
|
|
||||||
|
You can build the container image using the following command:
|
||||||
|
|
||||||
|
\```bash
|
||||||
|
buildah bud -t rss2email:latest .
|
||||||
|
\```
|
||||||
|
|
||||||
|
### Running the Container
|
||||||
|
|
||||||
|
You can create and run a container from this image with the following command:
|
||||||
|
|
||||||
|
\```bash
|
||||||
|
podman run -d --name rss2email rss2email:latest
|
||||||
|
\```
|
||||||
|
|
||||||
|
### Pushing the Container Image to a Registry
|
||||||
|
|
||||||
|
With Buildah:
|
||||||
|
|
||||||
|
\```bash
|
||||||
|
buildah push rss2email:latest docker://<registry>/<username>/rss2email:latest
|
||||||
|
\```
|
||||||
|
|
||||||
|
Replace `<registry>` with the name of your Docker registry and `<username>` with your username on that registry.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The configuration of rss2email is done via environment variables. You can specify these on the Docker run command line with the `-e` option or define them in an environment variable file and specify that with the `--env-file` option.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
66
scripts/createMSMTPconfig.sh
Executable file
66
scripts/createMSMTPconfig.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ -z "${USE_MSMTP}" ]; then
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_HOST}" ]; then
|
||||||
|
echo "missing required parameter <SMTP_HOST>"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_PORT}" ]; then
|
||||||
|
MSMTP_SMTP_PORT=25
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_FROM}" ]; then
|
||||||
|
echo "missing required parameter <SMTP_FROM>"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_AUTH}" ]; then
|
||||||
|
MSMTP_SMTP_AUTH=off
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_TLS}" ]; then
|
||||||
|
MSMTP_SMTP_TLS=off
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "${MSMTP_SMTP_AUTH}" != "off" ]; then
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_USER}" ]; then
|
||||||
|
echo "missing required parameter <SMTP_USER>"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${MSMTP_SMTP_PASS}" ]; then
|
||||||
|
echo "missing required parameter <SMTP_PASS>"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
MSMTP_SMTP_USER="dummy"
|
||||||
|
MSMTP_SMTP_PASS="dummy"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > /etc/msmtprc <<EOF
|
||||||
|
defaults
|
||||||
|
auth ${MSMTP_SMTP_AUTH}
|
||||||
|
tls ${MSMTP_SMTP_TLS}
|
||||||
|
logfile /dev/stdout
|
||||||
|
|
||||||
|
account default
|
||||||
|
host ${MSMTP_SMTP_HOST}
|
||||||
|
port ${MSMTP_SMTP_PORT}
|
||||||
|
from ${MSMTP_SMTP_FROM}
|
||||||
|
user ${MSMTP_SMTP_USER}
|
||||||
|
password ${MSMTP_SMTP_PASS}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod 600 /etc/msmtprc
|
||||||
|
|
||||||
|
|
||||||
|
# we use msmtp as a dropin replacement for sendmail
|
||||||
|
rm /usr/sbin/sendmail
|
||||||
|
ln -s /usr/bin/msmtp /usr/sbin/sendmail
|
19
scripts/entryPoint.sh
Executable file
19
scripts/entryPoint.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
/createMSMTPconfig.sh
|
||||||
|
|
||||||
|
|
||||||
|
if [ -z ${RECIPIENTS} ]; then
|
||||||
|
echo "RECIPIENTS environment variable missing"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z ${FEEDS} ]; then
|
||||||
|
echo "FEEDS environment variable missing"
|
||||||
|
exit 255
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p ~/.rss2email/
|
||||||
|
echo ${FEEDS} > ~/.rss2email/feeds.txt
|
||||||
|
|
||||||
|
/app/rss2email daemon ${RECIPIENTS}
|
Loading…
Reference in New Issue
Block a user