diff --git a/.gitignore b/.gitignore index 49bb335e..385b220d 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,4 @@ ergo.prof ergo.mprof /dist *.pem +.dccache \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index e35d3849..7a7de091 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,46 +1,36 @@ -## build Ergo +## build ergo binary FROM golang:1.16-alpine AS build-env -RUN apk add --no-cache git make curl sed +RUN apk add -U --force-refresh --no-cache --purge --clean-protected -l -u make -# copy ergo -RUN mkdir -p /go/src/github.com/ergochat/ergo +# copy ergo source WORKDIR /go/src/github.com/ergochat/ergo -ADD . /go/src/github.com/ergochat/ergo/ +COPY . . # modify default config file so that it doesn't die on IPv6 # and so it can be exposed via 6667 by default -run sed -i 's/^\(\s*\)\"127.0.0.1:6667\":.*$/\1":6667":/' /go/src/github.com/ergochat/ergo/default.yaml -run sed -i 's/^\s*\"\[::1\]:6667\":.*$//' /go/src/github.com/ergochat/ergo/default.yaml +RUN sed -i 's/^\(\s*\)\"127.0.0.1:6667\":.*$/\1":6667":/' /go/src/github.com/ergochat/ergo/default.yaml && \ + sed -i 's/^\s*\"\[::1\]:6667\":.*$//' /go/src/github.com/ergochat/ergo/default.yaml # compile RUN make - - -## run Ergo -FROM alpine:3.9 +## build ergo container +FROM alpine:3.13 # metadata -LABEL maintainer="daniel@danieloaks.net" -LABEL description="Ergo is a modern, experimental IRC server written in Go" - -# install latest updates and configure alpine -RUN apk update -RUN apk upgrade -RUN mkdir /lib/modules +LABEL maintainer="Daniel Oaks ,Daniel Thamdrup " \ + description="Ergo is a modern, experimental IRC server written in Go" # standard ports listened on EXPOSE 6667/tcp 6697/tcp -# oragono itself -RUN mkdir -p /ircd-bin -COPY --from=build-env /go/bin/ergo /ircd-bin +# ergo itself +COPY --from=build-env /go/bin/ergo \ + /go/src/github.com/ergochat/ergo/default.yaml \ + /go/src/github.com/ergochat/ergo/distrib/docker/run.sh \ + /ircd-bin/ COPY --from=build-env /go/src/github.com/ergochat/ergo/languages /ircd-bin/languages/ -COPY --from=build-env /go/src/github.com/ergochat/ergo/default.yaml /ircd-bin/default.yaml - -COPY distrib/docker/run.sh /ircd-bin/run.sh -RUN chmod +x /ircd-bin/run.sh # running volume holding config file, db, certs VOLUME /ircd diff --git a/README.md b/README.md index 6c02cbb6..91124090 100644 --- a/README.md +++ b/README.md @@ -58,14 +58,14 @@ ergo run # server should be ready to go! ### Platform Packages -Some platforms/distros also have Oragono packages maintained for them: +Some platforms/distros also have Ergo packages maintained for them: * Arch Linux [AUR](https://aur.archlinux.org/packages/oragono/) - Maintained by [Sean Enck (@enckse)](https://github.com/enckse). ### Using Docker A Dockerfile and example docker-compose recipe are available in the `distrib/docker` directory. Ergo is automatically published -to Docker Hub at [oragono/oragono](https://hub.docker.com/r/oragono/oragono). For more information, see the distrib/docker +to Docker Hub at [ergochat/ergo](https://hub.docker.com/r/ergochat/ergo). For more information, see the distrib/docker [README file](https://github.com/ergochat/ergo/blob/master/distrib/docker/README.md). ### From Source diff --git a/distrib/docker/docker-compose.yml b/distrib/docker/docker-compose.yml index 512e6c02..de44d26f 100644 --- a/distrib/docker/docker-compose.yml +++ b/distrib/docker/docker-compose.yml @@ -1,8 +1,8 @@ -version: "3.2" +version: "3.8" services: - oragono: - image: oragono/oragono:latest + ergo: + image: ergochat/ergo:latest ports: - "6667:6667/tcp" - "6697:6697/tcp" diff --git a/distrib/docker/run.sh b/distrib/docker/run.sh index 800bd921..197db37a 100644 --- a/distrib/docker/run.sh +++ b/distrib/docker/run.sh @@ -1,8 +1,5 @@ #!/bin/sh -# start in right dir -cd /ircd - # make config file if [ ! -f "/ircd/ircd.yaml" ]; then awk '{gsub(/path: languages/,"path: /ircd-bin/languages")}1' /ircd-bin/default.yaml > /tmp/ircd.yaml