1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#
# Copyright (c) 2003-2025 Rony Shapiro <ronys@pwsafe.org>.
# All rights reserved. Use of the code is allowed under the
# Artistic License 2.0 terms, as specified in the LICENSE file
# distributed with this code, or available from
# http://www.opensource.org/licenses/artistic-license-2.0.php
#
# This Dockerfile written by JP Vossen and generously donated to the project.
#
# Here is how to run it. It works, but is a tad ugly, I assume due to
# default GTK themes:
# ----
# ~/working/docker/passwordsafe$ sudo docker run --net=host
# --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw"
# --volume="$HOME/.pwsafe:/root/.pwsafe:rw" passwordsafe
# ----
#
# See: https://hub.docker.com/_/debian and
# https://hub.docker.com/_/ubuntu
FROM ubuntu:22.04
# Build with: sudo docker build -t passwordsafe .
# --or-- sudo docker build -t passwordsafe:1.18.2 .
# Run with: sudo docker run --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" --volume="$HOME/.pwsafe:/root/.pwsafe:rw" passwordsafe
LABEL "maintainer"="The Passwordsafe Project <Passwordsafe-linux@lists.sourceforge.net>"
# Install deps for PWSafe (LOTS and LOTS!)
# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices#apt-get
# Prevent prompting for info during package install, e.g., timezone
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -qy libwxgtk3.0-gtk3-0v5 libxtst6 libxerces-c3.2 libykpers-1-1 \
libqrencode4 libcurl4 libmagic1 locales xdg-utils \
&& rm -rf /var/lib/apt/lists/*
# Set the locale, per http://jaredmarkell.com/docker-and-locales/
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Avoid: (pwsafe:8): Gtk-WARNING **: *: Attempting to set the permissions of `/root/.local/share', but failed: No such file or directory
RUN mkdir -p /root/.local/share
# This is here to leave everything above UNCHANGED as much as possible
# to allow layer caching to work at build time!
ARG deb_file=passwordsafe-ubuntu22-1.18.2-amd64.deb
LABEL "pwsafe"="$deb_file"
ADD https://github.com/pwsafe/pwsafe/releases/download/1.18.2/$deb_file \
/tmp/$deb_file
RUN dpkg -i /tmp/$deb_file && rm /tmp/$deb_file
CMD /usr/bin/pwsafe
# ----
#
# A non-cached build that actually has to do the APT installs takes about
# 5 minutes, most of which is `apt-get` "Setting up...".
#
# Build:
# ----
#
# ~/working/docker/passwordsafe$ time sudo docker build -t passwordsafe:1.18.2 .
# Sending build context to Docker daemon 7.168kB
#
# Step 1/14 : FROM ubuntu:22.04
# ---> fd1d8f58e8ae
# Step 2/14 : LABEL "maintainer"="The Passwordsafe Project <Passwordsafe-linux@lists.sourceforge.net>"
# ---> Running in eb506b6e0f83
# Removing intermediate container eb506b6e0f83
# ---> f7010ca1d713
# Step 3/14 : ARG DEBIAN_FRONTEND=noninteractive
# ---> Running in 7bfab4ac95f5
# Removing intermediate container 7bfab4ac95f5
# ---> 849e3b9c6f81
# Step 4/14 : RUN apt-get update && apt-get install -qy libwxgtk3.0-gtk3-0v5 libxtst6 libxerces-c3.2 libykpers-1-1 libqrencode4 libcurl4 libmagic1 locales xdg-utils && rm -rf /var/lib/apt/lists/*
# ---> Running in 7c8ced5bdfe6
# ...
# Removing intermediate container 7c8ced5bdfe6
# ---> 3633843b0a5f
# Step 5/14 : RUN locale-gen en_US.UTF-8
# ---> Running in 336486b5bb3b
# Generating locales (this might take a while)...
# en_US.UTF-8... done
# Generation complete.
# Removing intermediate container 336486b5bb3b
# ---> e9b98c278598
# Step 6/14 : ENV LANG en_US.UTF-8
# ---> Running in 4a2f0074cbbf
# Removing intermediate container 4a2f0074cbbf
# ---> 09c480bea6cb
# Step 7/14 : ENV LANGUAGE en_US:en
# ---> Running in 0dadf09b3b5e
# Removing intermediate container 0dadf09b3b5e
# ---> c3801b7b4a07
# Step 8/14 : ENV LC_ALL en_US.UTF-8
# ---> Running in f73b90534c90
# Removing intermediate container f73b90534c90
# ---> e21a133ac663
# Step 9/14 : RUN mkdir -p /root/.local/share
# ---> Running in 4ec087679c0e
# Removing intermediate container 4ec087679c0e
# ---> d134920fd14b
# Step 10/14 : ARG deb_file=passwordsafe-ubuntu22-1.18.2-amd64.deb
# ---> Running in 41d28719c32d
# Removing intermediate container 41d28719c32d
# ---> 3ab964b6ec38
# Step 11/14 : LABEL "pwsafe"="$deb_file"
# ---> Running in db7ddded96c0
# Removing intermediate container db7ddded96c0
# ---> b3a49a7f7cc4
# Step 12/14 : ADD https://github.com/pwsafe/pwsafe/releases/download/1.18.2/$deb_file /tmp/$deb_file
# ...
# ---> 5441b9460729
# Step 13/14 : RUN dpkg -i /tmp/$deb_file && rm /tmp/$deb_file
# ---> Running in eb9e4c713920
# Selecting previously unselected package passwordsafe.
# (Reading database ... 26621 files and directories currently installed.)
# Preparing to unpack .../passwordsafe-ubuntu22-1.18.2-amd64.deb ...
# Unpacking passwordsafe (1.18.2) ...
# Setting up passwordsafe (1.18.2) ...
# Processing triggers for hicolor-icon-theme (0.17-2) ...
# Removing intermediate container eb9e4c713920
# ---> adf837163c20
# Step 14/14 : CMD /usr/bin/pwsafe
# ---> Running in b3ee23483787
# Removing intermediate container b3ee23483787
# ---> 4d7a457ff26b
# Successfully built 4d7a457ff26b
# Successfully tagged passwordsafe:1.18.2
#
# real 2m32.595s
# user 0m0.165s
# sys 0m0.192s
# ----
#
# The image is not small because of the large amount of stuff that gets
# pulled in to meet the deps:
# ----
# docker image list
# REPOSITORY TAG IMAGE ID CREATED SIZE
# passwordsafe 1.18.2 4d7a457ff26b 3 minutes ago 712MB
# ----
|