mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-10 18:36:17 +00:00
* Improve env var handling, clarify instructions updateConfig.js will update dist/config.json with any values specified in the docker compose file as environmental variables (env vars). If not specified it will use the default values in src/config.json (the 'usual' place where folks can customize their config). A user can make changes to an env var (e.g., disabling Scroll Random Results), then docker compose up -d to quickly restart the container with the change. * minor update to env vars in table Make sure to change your compose so the updated flattened values work. * TZ handling for cron runs of the script docker logs netsky should now show the proper time zone for script runs that were initiated via cron schedule.
41 lines
1.2 KiB
Docker
41 lines
1.2 KiB
Docker
# Use an official Node.js runtime as a base image
|
|
FROM node:18
|
|
|
|
# Set the working directory in the container
|
|
WORKDIR /usr/src/microsoft-rewards-script
|
|
|
|
# Install jq, cron, and gettext-base
|
|
RUN apt-get update && apt-get install -y jq cron gettext-base
|
|
|
|
# Copy all files to the working directory
|
|
COPY . .
|
|
|
|
# Install dependencies including Playwright
|
|
RUN apt-get install -y \
|
|
xvfb \
|
|
libgbm-dev \
|
|
libnss3 \
|
|
libasound2 \
|
|
libxss1 \
|
|
libatk-bridge2.0-0 \
|
|
libgtk-3-0 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install application dependencies
|
|
RUN npm install
|
|
|
|
# Build the script
|
|
RUN npm run build
|
|
|
|
# Install playwright chromium
|
|
RUN npx playwright install chromium
|
|
|
|
# Copy cron file to cron directory
|
|
COPY src/crontab.template /etc/cron.d/microsoft-rewards-cron.template
|
|
|
|
# Create the log file to be able to run tail
|
|
RUN touch /var/log/cron.log
|
|
|
|
# Define the command to run your application with cron optionally
|
|
CMD sh -c 'node src/updateConfig.js && echo "$TZ" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata && if [ "$RUN_ON_START" = "true" ]; then npm start; fi && envsubst < /etc/cron.d/microsoft-rewards-cron.template > /etc/cron.d/microsoft-rewards-cron && crontab /etc/cron.d/microsoft-rewards-cron && cron && tail -f /var/log/cron.log'
|