Procházet zdrojové kódy

Experiment Development Containers / GitHub Codespaces (#4859)

* Experiment Development Containers / GitHub Codespaces
https://containers.dev/
https://github.com/features/codespaces

* Fix tests
Alexandre Alapetite před 3 roky
rodič
revize
c5b741d98f

+ 31 - 0
.devcontainer/Dockerfile

@@ -0,0 +1,31 @@
+FROM alpine:3.16
+
+ENV TZ UTC
+SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
+RUN apk add --no-cache \
+	apache2 php-apache2 \
+	php php-curl php-gmp php-intl php-mbstring php-xml php-zip \
+	php-ctype php-dom php-fileinfo php-iconv php-json php-opcache php-openssl php-phar php-session php-simplexml php-xmlreader php-xmlwriter php-xml php-tokenizer php-zlib \
+	php-pdo_sqlite php-pdo_mysql php-pdo_pgsql \
+	bash composer curl docker-cli-buildx git gpg make nodejs npm shellcheck shfmt sudo
+
+RUN rm -f /etc/apache2/conf.d/languages.conf /etc/apache2/conf.d/info.conf \
+		/etc/apache2/conf.d/status.conf /etc/apache2/conf.d/userdir.conf && \
+	sed -r -i "/^\s*LoadModule .*mod_(alias|autoindex|negotiation|status).so$/s/^/#/" \
+		/etc/apache2/httpd.conf && \
+	sed -r -i "/^\s*#\s*LoadModule .*mod_(deflate|expires|headers|mime|remoteip|setenvif).so$/s/^\s*#//" \
+		/etc/apache2/httpd.conf && \
+	sed -r -i "/^\s*(CustomLog|ErrorLog|Listen) /s/^/#/" \
+		/etc/apache2/httpd.conf
+
+RUN addgroup developer && \
+	adduser --ingroup developer --disabled-password developer && \
+	echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer
+
+ENV COPY_LOG_TO_SYSLOG On
+ENV COPY_SYSLOG_TO_STDERR On
+ENV CRON_MIN ''
+ENV FRESHRSS_ENV 'development'
+ENV LISTEN '0.0.0.0:8080'
+
+EXPOSE 8080

+ 37 - 0
.devcontainer/devcontainer.json

@@ -0,0 +1,37 @@
+// For format details, see https://aka.ms/devcontainer.json
+{
+	"name": "FreshRSS-dev-Alpine",
+	"build": {
+		"dockerfile": "Dockerfile"
+	},
+	"extensions": [
+		"bmewburn.vscode-intelephense-client",
+		"DavidAnson.vscode-markdownlint",
+		"dbaeumer.vscode-eslint",
+		"eamodio.gitlens",
+		"EditorConfig.EditorConfig",
+		"foxundermoon.shell-format",
+		"mrmlnc.vscode-apache",
+		"redhat.vscode-yaml",
+		"timonwong.shellcheck",
+		"ValeryanM.vscode-phpsab"
+	],
+	"forwardPorts": [
+		8080
+	],
+	"portsAttributes": {
+		"8080": {
+			"label": "FreshRSS Apache",
+			"onAutoForward": "notify"
+		}
+	},
+	"mounts": [
+		{
+			"source": "vscode-freshrss-data",
+			"target": "/home/developer/freshrss-data",
+			"type": "volume"
+		}
+	],
+	"remoteUser": "developer",
+	"postCreateCommand": "sudo .devcontainer/postCreateCommand.sh"
+}

+ 17 - 0
.devcontainer/postCreateCommand.sh

@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ln -s "$(pwd)" /var/www/FreshRSS
+
+cp ./Docker/*.Apache.conf /etc/apache2/conf.d/
+
+cat <<EOT >./constants.local.php
+<?php
+define('DATA_PATH', '/home/developer/freshrss-data');
+EOT
+
+./Docker/entrypoint.sh
+
+chown -R developer:www-data /home/developer/freshrss-data
+chmod -R g+w /home/developer/freshrss-data
+
+httpd