mirror of
				https://github.com/craigerl/aprsd.git
				synced 2025-10-31 12:50:30 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| FROM python:3.11-slim as build
 | |
| 
 | |
| ARG BRANCH=master
 | |
| ARG BUILDX_QEMU_ENV
 | |
| ENV APRSD_BRANCH=${BRANCH:-master}
 | |
| 
 | |
| ENV PIP_DEFAULT_TIMEOUT=100 \
 | |
|     # Allow statements and log messages to immediately appear
 | |
|     PYTHONUNBUFFERED=1 \
 | |
|     # disable a pip version check to reduce run-time & log-spam
 | |
|     PIP_DISABLE_PIP_VERSION_CHECK=1 \
 | |
|     # cache is useless in docker image, so disable to reduce image size
 | |
|     PIP_NO_CACHE_DIR=1
 | |
| 
 | |
| 
 | |
| RUN set -ex \
 | |
|     # Create a non-root user
 | |
|     && addgroup --system --gid 1001 appgroup \
 | |
|     && useradd --uid 1001 --gid 1001 -s /usr/bin/bash -m -d /app appuser \
 | |
|     # Upgrade the package index and install security upgrades
 | |
|     && apt-get update \
 | |
|     && apt-get upgrade -y \
 | |
|     && apt-get install -y git build-essential curl libffi-dev \
 | |
|     python3-dev libssl-dev libxml2-dev libxslt-dev telnet sudo \
 | |
|     # Install dependencies
 | |
|     # Clean up
 | |
|     && apt-get autoremove -y \
 | |
|     && apt-get clean -y
 | |
| 
 | |
| 
 | |
| ### Final stage
 | |
| FROM build as final
 | |
| WORKDIR /app
 | |
| 
 | |
| RUN git clone -b $APRSD_BRANCH https://github.com/craigerl/aprsd
 | |
| RUN cd aprsd && pip install --no-cache-dir .
 | |
| RUN pip install gevent uwsgi
 | |
| RUN which aprsd
 | |
| RUN mkdir /config
 | |
| RUN chown -R appuser:appgroup /app
 | |
| RUN chown -R appuser:appgroup /config
 | |
| USER appuser
 | |
| RUN which aprsd
 | |
| RUN aprsd sample-config > /config/aprsd.conf
 | |
| 
 | |
| ADD bin/run.sh /app
 | |
| ADD bin/listen.sh /app
 | |
| ADD bin/admin.sh /app
 | |
| 
 | |
| EXPOSE 8000
 | |
| 
 | |
| # CMD ["gunicorn", "aprsd.wsgi:app", "--host", "0.0.0.0", "--port", "8000"]
 | |
| ENTRYPOINT ["/app/run.sh"]
 | |
| VOLUME ["/config"]
 | |
| 
 | |
| # Set the user to run the application
 | |
| USER appuser
 |