44 lines
1.1 KiB
Docker
44 lines
1.1 KiB
Docker
FROM pgvector/pgvector:pg15
|
|
|
|
# Install additional tools
|
|
RUN apt-get update && apt-get install -y \
|
|
postgresql-client \
|
|
cron \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Create directory for scripts
|
|
RUN mkdir -p /docker-entrypoint-initdb.d
|
|
|
|
# Copy initialization script
|
|
COPY init.sh /docker-entrypoint-initdb.d/
|
|
RUN chmod +x /docker-entrypoint-initdb.d/init.sh
|
|
|
|
# Copy refresh script
|
|
COPY refresh.sh /usr/local/bin/
|
|
RUN chmod +x /usr/local/bin/refresh.sh
|
|
|
|
# Environment variables
|
|
ENV SOURCE_DB_URL=""
|
|
ENV TARGET_DB_NAME="shadow_db"
|
|
ENV TARGET_DB_USER="postgres"
|
|
ENV TARGET_DB_PASSWORD=""
|
|
ENV REFRESH_TIME="00:00"
|
|
|
|
# Define volume for persistent data
|
|
VOLUME ["/var/lib/postgresql/data"]
|
|
|
|
# Expose PostgreSQL port
|
|
EXPOSE 5432
|
|
|
|
# Add crontab file
|
|
RUN echo "0 0 * * * /usr/local/bin/refresh.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/refresh-cron
|
|
RUN chmod 0644 /etc/cron.d/refresh-cron
|
|
|
|
# Create the log file to be able to run tail
|
|
RUN touch /var/log/cron.log
|
|
|
|
# Start cron and PostgreSQL
|
|
COPY docker-entrypoint.sh /
|
|
RUN chmod +x /docker-entrypoint.sh
|
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|