mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2025-07-18 20:39:36 +02:00
feat: Enhance CDN management with entrypoint script and update country data handling
This commit is contained in:
parent
f7ff8f30b0
commit
921e756aef
4 changed files with 22 additions and 12 deletions
|
@ -60,7 +60,7 @@ class Command(BaseCommand):
|
|||
f.write(cdn_version)
|
||||
self.stdout.write(self.style.SUCCESS('Version updated successfully to ' + cdn_version))
|
||||
else:
|
||||
self.stdout.write(self.style.SUCCESS('Data is already up-to-date.'))
|
||||
self.stdout.write(self.style.SUCCESS('Data is already up-to-date. Run with --force to re-download'))
|
||||
return
|
||||
else:
|
||||
self.stdout.write(self.style.ERROR('Error downloading version.json'))
|
||||
|
@ -78,6 +78,7 @@ class Command(BaseCommand):
|
|||
countries_json_path = os.path.join(media_root, 'countries_states_cities.json')
|
||||
if os.path.exists(countries_json_path):
|
||||
os.remove(countries_json_path)
|
||||
self.stdout.write(self.style.SUCCESS('countries_states_cities.json deleted successfully'))
|
||||
|
||||
# Download the latest countries, regions, and cities json file
|
||||
res = requests.get(f'{ADVENTURELOG_CDN_URL}/data/countries_states_cities.json')
|
||||
|
|
|
@ -7,20 +7,16 @@ WORKDIR /app
|
|||
# Install required Python packages
|
||||
RUN pip install --no-cache-dir requests osm2geojson
|
||||
|
||||
# Copy the script and data folder into the container
|
||||
# Copy the script into the container
|
||||
COPY main.py /app/main.py
|
||||
COPY data /app/data/
|
||||
|
||||
# Ensure the data folder exists
|
||||
RUN mkdir -p /app/data
|
||||
|
||||
# Run the script to generate GeoJSON files
|
||||
RUN python /app/main.py
|
||||
# Run the script to generate the data folder and GeoJSON files (this runs inside the container)
|
||||
RUN python -u /app/main.py
|
||||
|
||||
# Install Nginx
|
||||
RUN apt update && apt install -y nginx && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy the entire data folder to the Nginx serving directory
|
||||
# Copy the entire generated data folder to the Nginx serving directory
|
||||
RUN mkdir -p /var/www/html/data && cp -r /app/data/* /var/www/html/data/
|
||||
|
||||
# Copy Nginx configuration
|
||||
|
@ -32,5 +28,9 @@ COPY index.html /usr/share/nginx/html/index.html
|
|||
# Expose port 80 for Nginx
|
||||
EXPOSE 80
|
||||
|
||||
# Start Nginx in the foreground
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
# Copy the entrypoint script into the container
|
||||
COPY entrypoint.sh /app/entrypoint.sh
|
||||
RUN chmod +x /app/entrypoint.sh
|
||||
|
||||
# Set the entrypoint script as the default command
|
||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||
|
|
9
cdn/entrypoint.sh
Normal file
9
cdn/entrypoint.sh
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Any setup tasks or checks can go here (if needed)
|
||||
echo "AdventureLog CDN has started!"
|
||||
echo "Refer to the documentation for information about connecting your AdventureLog instance to this CDN."
|
||||
echo "Thanks to our data providers for making this possible! You can find them on the CDN site."
|
||||
|
||||
# Start Nginx in the foreground (as the main process)
|
||||
nginx -g 'daemon off;'
|
|
@ -70,7 +70,7 @@ def saveCountryFlags():
|
|||
Downloads the flags of all countries and saves them in the data/flags directory
|
||||
"""
|
||||
# Load the countries data
|
||||
with open(os.path.join(os.path.dirname(__file__), 'data', f'countries_states_cities_{COUNTRY_REGION_JSON_VERSION}.json')) as f:
|
||||
with open(os.path.join(os.path.dirname(__file__), 'data', f'countries_states_cities.json')) as f:
|
||||
data = json.load(f)
|
||||
|
||||
for country in data:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue