Initial Commit

This commit is contained in:
Markus Pesch 2019-05-26 21:16:19 +02:00
commit ea024b830b
Signed by: volker.raschek
GPG Key ID: 852BCC170D81A982
8 changed files with 121 additions and 0 deletions

12
.editorconfig Normal file
View File

@ -0,0 +1,12 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false
[Makefile]
indent_style = tab

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
**/Makefile text eol=lf

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.DS_Store

5
.travis.yml Normal file
View File

@ -0,0 +1,5 @@
services:
- docker
script:
- make push

34
Dockerfile Normal file
View File

@ -0,0 +1,34 @@
# Base-Image
FROM ubuntu:18.04
# Environment
ENV CUPS_ADMIN_USER=print
ENV CUPS_ADMIN_PASSWD=print
# Labels
LABEL maintainer="Markus Pesch"
# Non-Interactive
ENV DEBIAN_FRONTEND="noninteractive"
# Software installation
RUN apt-get update && \
apt-get upgrade --yes && \
apt-get install --yes \
sudo \
cups \
cups-client \
cups-bsd \
cups-filters \
foomatic-db-compressed-ppds \
printer-driver-all \
openprinting-ppds \
hpijs-ppds \
hp-ppd \
hplip && \
rm -rf /var/lib/apt/lists/*
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh
ENTRYPOINT [ "/usr/local/bin/entrypoint.sh"]

16
Makefile Normal file
View File

@ -0,0 +1,16 @@
# VERSION
# If no version is specified as a parameter of make, the last git hash
# value is taken.
VERSION?=latest
# DOCKER_USER
DOCKER_USER?=volkerraschek
build:
docker build \
--tag ${DOCKER_USER}/cupsd:${VERSION} \
.
push: build
docker login --username ${DOCKER_USER} --password ${DOCKER_PASSWORD}
docker push ${DOCKER_USER}/cupsd:${VERSION}

38
README.md Normal file
View File

@ -0,0 +1,38 @@
# cups
Common Unix Printing System (CUPS), is the most widely used printing system on Linux
systems. CUPS allows you to use, manage and share many printers on the network,
as it is designed as a client/server system.
This repository contains only build scripts for the CUPS daemon.
## Usage
To start cups directly over cli:
```bash
docker run \
--detach \
--env CUPS_ADMIN_USER=print \
--env CUPS_ADMIN_PASSWD=print \
--network=host \
--volume /var/run/dbus:/var/run/dbus \
--name cupsd \
volkerraschek/cupsd
```
or if you want to use a `docker-compose.yml`
```yaml
version: '3'
services:
cupsd:
container_name: cupsd
environment:
- CUPS_ADMIN_USER=print
- CUPS_ADMIN_PASSWD=print
network_mode: host
restart: always
volumes:
- /var/run/dbus:/var/run/dbus
```
After starting the container, cups is available over http://localhost:631

14
entrypoint.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
useradd \
--groups=sudo,lp,lpadmin \
--create-home \
--home-dir=/home/${CUPS_ADMIN_USER} \
--shell=/bin/bash \
${CUPS_ADMIN_USER}
echo "${CUPS_ADMIN_USER}:${CUPS_ADMIN_PASSWD}" | chpasswd
sed --in-place '/%sudo[[:space:]]/ s/ALL[[:space:]]*$/NOPASSWD:ALL/' /etc/sudoers
/usr/sbin/cupsd -f