mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-11-04 01:51:04 +01:00 
			
		
		
		
	Merge pull request #66 from juanfont/remove-old-docker
Remove old docker code
This commit is contained in:
		
						commit
						d3f965d493
					
				@ -1,62 +0,0 @@
 | 
				
			|||||||
FROM golang:alpine
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set necessary environmet variables needed for our image
 | 
					 | 
				
			||||||
ENV GO111MODULE=on \
 | 
					 | 
				
			||||||
    CGO_ENABLED=0 \
 | 
					 | 
				
			||||||
    GOOS=linux \
 | 
					 | 
				
			||||||
    GOARCH=amd64 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
 | 
					 | 
				
			||||||
ENV PGDATA /var/lib/postgresql/data
 | 
					 | 
				
			||||||
ENV POSTGRES_DB headscale
 | 
					 | 
				
			||||||
ENV POSTGRES_USER admin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV LANG en_US.utf8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk update && \
 | 
					 | 
				
			||||||
    apk add git su-exec tzdata libpq postgresql-client postgresql postgresql-contrib gnupg supervisor inotify-tools wireguard-tools openssh && \
 | 
					 | 
				
			||||||
    mkdir /docker-entrypoint-initdb.d && \
 | 
					 | 
				
			||||||
    rm -rf /var/cache/apk/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
 | 
					 | 
				
			||||||
RUN gpg --list-keys --fingerprint --with-colons | sed -E -n -e 's/^fpr:::::::::([0-9A-F]+):$/\1:6:/p' | gpg --import-ownertrust
 | 
					 | 
				
			||||||
RUN wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64" && \
 | 
					 | 
				
			||||||
    wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.7/gosu-amd64.asc" && \
 | 
					 | 
				
			||||||
    gpg --verify /usr/local/bin/gosu.asc && \
 | 
					 | 
				
			||||||
    rm /usr/local/bin/gosu.asc && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/gosu
 | 
					 | 
				
			||||||
RUN apk --purge del gnupg ca-certificates
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
VOLUME /var/lib/postgresql/data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN rm -rf /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_dsa_key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN git clone https://github.com/juanfont/headscale.git
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /build/headscale
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN go build cmd/headscale/headscale.go 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY headscale.sh /headscale.sh
 | 
					 | 
				
			||||||
COPY postgres.sh /postgres.sh
 | 
					 | 
				
			||||||
COPY supervisord.conf /etc/supervisord.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN mkdir -p /run/postgresql
 | 
					 | 
				
			||||||
RUN chown postgres:postgres /run/postgresql
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN adduser -S headscale
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ENV GIN_MODE release
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 8000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["supervisord","--nodaemon", "--configuration", "/etc/supervisord.conf"]
 | 
					 | 
				
			||||||
@ -1,28 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
cd /build/headscale
 | 
					 | 
				
			||||||
echo 'Writing config...'
 | 
					 | 
				
			||||||
echo '''
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    "server_url": "$SERVER_URL",
 | 
					 | 
				
			||||||
    "listen_addr": "0.0.0.0:8000",
 | 
					 | 
				
			||||||
    "private_key_path": "private.key",
 | 
					 | 
				
			||||||
    "public_key_path": "public.key",
 | 
					 | 
				
			||||||
    "db_host": "localhost",
 | 
					 | 
				
			||||||
    "db_port": 5432,
 | 
					 | 
				
			||||||
    "db_name": "headscale",
 | 
					 | 
				
			||||||
    "db_user": "admin",
 | 
					 | 
				
			||||||
    "db_pass": "$POSTGRES_PASSWORD"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
''' > config.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Wait until PostgreSQL started and listens on port 5432.
 | 
					 | 
				
			||||||
while [ -z "`netstat -tln | grep 5432`" ]; do
 | 
					 | 
				
			||||||
  echo 'Waiting for PostgreSQL to start ...'
 | 
					 | 
				
			||||||
  sleep 1
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
echo 'PostgreSQL started.'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Start server.
 | 
					 | 
				
			||||||
echo 'Starting server...'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
./headscale
 | 
					 | 
				
			||||||
@ -1,58 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
chown -R postgres "$PGDATA"
 | 
					 | 
				
			||||||
if [ -z "$(ls -A "$PGDATA")" ]; then
 | 
					 | 
				
			||||||
    gosu postgres initdb
 | 
					 | 
				
			||||||
    sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    : ${POSTGRES_USER:="postgres"}
 | 
					 | 
				
			||||||
    : ${POSTGRES_DB:=$POSTGRES_USER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "$POSTGRES_PASSWORD" ]; then
 | 
					 | 
				
			||||||
      pass="PASSWORD '$POSTGRES_PASSWORD'"
 | 
					 | 
				
			||||||
      authMethod=md5
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      echo "==============================="
 | 
					 | 
				
			||||||
      echo "!!! NO PASSWORD SET !!! (Use \$POSTGRES_PASSWORD env var)"
 | 
					 | 
				
			||||||
      echo "==============================="
 | 
					 | 
				
			||||||
      pass=
 | 
					 | 
				
			||||||
      authMethod=trust
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    echo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "$POSTGRES_DB" != 'postgres' ]; then
 | 
					 | 
				
			||||||
      createSql="CREATE DATABASE $POSTGRES_DB;"
 | 
					 | 
				
			||||||
      echo $createSql | gosu postgres postgres --single -jE
 | 
					 | 
				
			||||||
      echo
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ "$POSTGRES_USER" != 'postgres' ]; then
 | 
					 | 
				
			||||||
      op=CREATE
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      op=ALTER
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    userSql="$op USER $POSTGRES_USER WITH SUPERUSER $pass;"
 | 
					 | 
				
			||||||
    echo $userSql | gosu postgres postgres --single -jE
 | 
					 | 
				
			||||||
    echo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    gosu postgres pg_ctl -D "$PGDATA" \
 | 
					 | 
				
			||||||
        -o "-c listen_addresses=''" \
 | 
					 | 
				
			||||||
        -w start
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo
 | 
					 | 
				
			||||||
    for f in /docker-entrypoint-initdb.d/*; do
 | 
					 | 
				
			||||||
        case "$f" in
 | 
					 | 
				
			||||||
            *.sh)  echo "$0: running $f"; . "$f" ;;
 | 
					 | 
				
			||||||
            *.sql) echo "$0: running $f"; psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < "$f" && echo ;;
 | 
					 | 
				
			||||||
            *)     echo "$0: ignoring $f" ;;
 | 
					 | 
				
			||||||
        esac
 | 
					 | 
				
			||||||
        echo
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    gosu postgres pg_ctl -D "$PGDATA" -m fast -w stop
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    { echo; echo "host all all 0.0.0.0/0 $authMethod"; } >> "$PGDATA"/pg_hba.conf
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exec gosu postgres postgres
 | 
					 | 
				
			||||||
@ -1,4 +0,0 @@
 | 
				
			|||||||
# Example of how to user the docker image
 | 
					 | 
				
			||||||
POSTGRES_PASSWORD=
 | 
					 | 
				
			||||||
docker build . -t headscale-docker
 | 
					 | 
				
			||||||
docker run -p 8000:8000 -v $(pwd)/pgdata:/var/lib/postgresql/data -v "$(pwd)/private.key:/build/headscale/private.key" -v "$(pwd)/public.key:/build/headscale/public.key" -e SERVER_URL=127.0.0.1:8000 -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD -ti headscale-docker
 | 
					 | 
				
			||||||
@ -1,13 +0,0 @@
 | 
				
			|||||||
[supervisord]
 | 
					 | 
				
			||||||
nodaemon=true
 | 
					 | 
				
			||||||
user = root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[program:headscale]
 | 
					 | 
				
			||||||
command=/bin/bash -c "/headscale.sh"
 | 
					 | 
				
			||||||
stdout_logfile=/dev/stdout
 | 
					 | 
				
			||||||
stdout_logfile_maxbytes=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[program:postgres]
 | 
					 | 
				
			||||||
command=/bin/bash -c "/postgres.sh"
 | 
					 | 
				
			||||||
stdout_logfile=/dev/stdout
 | 
					 | 
				
			||||||
stdout_logfile_maxbytes=0
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user