Compare commits

...

3 Commits

Author SHA1 Message Date
7654bd1660 Fix DeprecationWarning on Python 3.10+
This is still compatible with Python 3.7+
2025-08-28 17:15:41 -04:00
9672e9d411
Merge pull request #1 from cmusatyalab/master
Add github action to build container and push it to ghcr
2023-11-15 22:25:12 -05:00
Jan Harkes
03e2d9c61c Add github action to build container and push it to ghcr 2022-10-05 13:28:35 -04:00
3 changed files with 63 additions and 6 deletions

43
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Create and publish Docker images for tagged versions
on:
push:
tags:
- 'v*'
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-docker-image:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Log into GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.output.labels }}

View File

@ -1,5 +1,18 @@
FROM docker.io/library/python:3-alpine
FROM python:3-slim
LABEL org.opencontainers.image.description='Unwebsockify is a TCP to WebSocket proxy/bridge -- like a reverse websockify.' \
org.opencontainers.image.source='https://github.com/jimparis/unwebsockify' \
org.opencontainers.image.licenses='MIT'
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONFAULTHANDLER=1 \
PYTHONHASHSEED=random \
PYTHONUNBUFFERED=1
WORKDIR /usr/src/app
RUN pip install --no-cache-dir websockets
COPY unwebsockify.py ./
ENTRYPOINT [ "python", "-u", "./unwebsockify.py" ]
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY unwebsockify.py .
ENTRYPOINT [ "python", "./unwebsockify.py" ]

View File

@ -48,7 +48,7 @@ class Proxy:
async def handle_client(self, r, w):
peer = w.get_extra_info("peername")
print(f'{peer} connected')
loop = asyncio.get_event_loop()
loop = asyncio.get_running_loop()
try:
async with websockets.connect(
self.url, subprotocols=self.subproto) as ws:
@ -96,7 +96,8 @@ def main(argv):
args = parser.parse_args()
loop = asyncio.get_event_loop()
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
proxy = Proxy(args.port, args.listen, args.url, args.subproto)
loop.run_until_complete(proxy.start())
loop.run_forever()