This docker container can be used to quickly get a WeeWX instance up and running.
This container has the following WeeWX extensions installed:
Pull felddy/weewx
from the Docker repository:
docker pull felddy/weewx
The easiest way to start the container is to create a
docker-compose.yml
similar to the following. If you use a
serial port to connect to your weather station, make sure the
container has permissions to access the port. The uid/gid can
be set using the environment variables below.
Modify any paths or devices as needed:
---
version: "3.8"
volumes:
data:
services:
weewx:
image: felddy/weewx
init: true
restart: "yes"
volumes:
- type: bind
source: ./data
target: /data
environment:
- TIMEZONE=US/Eastern
- WEEWX_UID=weewx
- WEEWX_GID=dialout
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
-
Create a directory on the host to store the configuration and database files:
mkdir data
-
If this is the first time running weewx, use the following command to start the container and generate a configuration file:
docker-compose run weewx
-
The configuration file will be created in the
data
directory. You should edit this file to match the setup of your weather station. -
When you are satisfied with configuration the container can be started in the background with:
docker-compose up -d
-
Stop the running container:
docker-compose down
-
Pull the new images from the Docker hub:
docker-compose pull
-
Update your configuration file (a backup will be created):
docker-compose run weewx --upgrade
-
Read through the new configuration and verify. It is helpful to
diff
the new config with the backup. Check the WeeWX Upgrade Guide for instructions for specific versions. -
Start the container up with the new image version:
docker-compose up -d
Mount point | Purpose |
---|---|
/data |
configuration file and sqlite database storage |
Variable | Purpose | Default |
---|---|---|
TIMEZONE |
Container TZ database name | UTC |
WEEWX_UID |
uid the daemon will be run under |
weewx |
WEEWX_GID |
gid the deamon will be run under |
weewx |
Build the image locally using this git repository as the build context:
docker build \
--tag felddy/weewx:4.4.0 \
https://github.com/felddy/weewx-docker.git#develop
To create images that are compatible with other platforms you can use the
buildx
feature of
Docker:
-
Copy the project to your machine using the
Clone
button above or the command line:git clone https://github.com/felddy/weewx-docker.git cd weewx-docker
-
Create the
Dockerfile-x
file withbuildx
platform support:./buildx-dockerfile.sh
-
Build the image using
buildx
:docker buildx build \ --file Dockerfile-x \ --platform linux/amd64 \ --output type=docker \ --tag felddy/weewx:4.4.0 .
There are a few helper arguments that can be used to diagnose container issues in your environment.
Purpose | Command |
---|---|
Generate the default configuration | docker-compose run weewx |
Upgrade a previous configuration | docker-compose run weewx --upgrade |
Generate a test (simulator) configuration | docker-compose run weewx --gen-test-config |
Drop into a shell in the container | docker-compose run weewx --shell |
Please see our Project Setup guide for step-by-step instructions on how to start a new repository from a skeleton. This will save you time and effort when configuring a new repository!
We welcome contributions! Please see CONTRIBUTING.md
for
details.
This project is in the worldwide public domain.
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.