Open-Meteo
简介
Open-Meteo 是一个开源天气 API,可供非商业用途免费使用。无需 API 密钥。其中包含很多预测模型的数据。
使用方式
可以编写如下 docker-compose.yaml
使用:
1 2 3 4 5 6 7 8
| services: open-meteo: image: ghcr.io/open-meteo/open-meteo volumes: - "./data:/app/data" ports: - '8080:8080' command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"]
|
数据同步
使用 openmeteo-api sync
命令可以从 AWS S3 上下载最新的数据集到本地,此处可以自己构建一个镜像利用 cron 命令实现定时拉取数据。
编写 sync-cron
:
1 2
| * * * * * /usr/local/bin/openmeteo-api sync ecmwf_ifs04 temperature_2m >> /var/log/cron.log 2>&1
|
编写 Dockerfile
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| FROM ubuntu:jammy
RUN apt-get update && apt-get -y install cron gpg curl
RUN curl -L https://apt.open-meteo.com/public.key | gpg --dearmour -o /etc/apt/trusted.gpg.d/openmeteo.gpg
RUN echo "deb [arch=amd64] https://apt.open-meteo.com jammy main" | tee /etc/apt/sources.list.d/openmeteo-api.list
RUN apt-get update
RUN apt-get install openmeteo-api -y
COPY sync-cron /etc/cron.d/sync-cron
RUN chmod 0644 /etc/cron.d/sync-cron
RUN crontab /etc/cron.d/sync-cron
RUN touch /var/log/cron.log
CMD cron && tail -f /var/log/cron.log
|
之后编写 docker-compose.yaml
:
1 2 3 4 5 6 7 8 9 10 11 12 13
| services: open-meteo: image: ghcr.io/open-meteo/open-meteo volumes: - "./data:/app/data" ports: - '8080:8080' command: ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "8080"] sync: build: . image: cron-meteo:latest volumes: - "./data:/var/lib/openmeteo-api/data"
|
使用如下命令构建容器:
1
| docker-compose build --no-cache
|
使用如下命令运行容器:
参考资料
官网
同步教程