diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml new file mode 100644 index 0000000..cdd601d --- /dev/null +++ b/.gitea/workflows/docker.yml @@ -0,0 +1,28 @@ +name: Build docker image + +on: + push: + branches: ["main"] + +env: + REGISTRY: git.matterlinux.xyz + IMAGE: ${{gitea.repository}} + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: "https://github.com/actions/checkout@v4" + + - name: Login to container repo + uses: "https://github.com/docker/login-action@v1" + with: + registry: ${{env.REGISTRY}} + username: ${{gitea.actor}} + password: ${{secrets.PACKAGES_TOKEN}} + + - name: Build image + run: | + docker build --tag ${{env.REGISTRY}}/${{env.IMAGE}}:latest . + docker push ${{env.REGISTRY}}/${{env.IMAGE}}:latest diff --git a/Dockerfile b/Dockerfile index d20b742..dc4bf9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,16 +2,23 @@ FROM golang:1.23.2 WORKDIR /app -COPY *.go ./ -COPY *.mod ./ -COPY *.sum ./ +RUN useradd runner -r -u 1001 -d /app +RUN chown -R runner:runner /app +USER runner -COPY log ./log +COPY *.mod ./ +COPY *.sum ./ + +RUN go mod download + +COPY *.go ./ +COPY Makefile ./ COPY lib ./lib -COPY routes ./routes +COPY log ./log COPY public ./public +COPY routes ./routes COPY templates ./templates -RUN go build . +RUN make -ENTRYPOINT ["/app/website"] +ENTRYPOINT ["/app/tracker"] diff --git a/README.md b/README.md index 55e6f3f..bf3694f 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,24 @@ # website | MatterLinux website + +![](https://git.matterlinux.xyz/matter/website/actions/workflows/docker.yml/badge.svg) + Soruce code of Matterlinux's offical website, which is located at [matterlinux.xyz](https://matterlinux.xyz) ### Deployment -Web server can be built and deployed with docker compose using the following -configuration file: +Web server can be deployed with docker compose using the following configuration file: ```yaml -version: "3" - services: website: - image: matterwebsite - restart: unless-stopped - build: - context: ./ + container_name: matterwebsite + image: git.matterlinux.xyz/matter/website ports: - - "127.0.0.1:9878:9878" + - "127.0.0.1:9878:9878" volumes: - - "./content:/app/content" + - "./content:/app/content" + restart: unless-stopped ``` -After saving the configuration file, you can build and run the docker container: +After saving the configuration file, you can run the docker container: ```bash docker-compose up -d ``` @@ -28,6 +27,6 @@ docker-compose up -d Website content can be managed by editing JSON and markdown files under the `content` direcotry. -MatterLinux's website content directory can be found in the +MatterLinux's website content directory can be found in the [content](https://git.matterlinux.xyz/Matter/content) repository.