-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6,560 changed files
with
222,747 additions
and
162,094 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,86 @@ | ||
FROM ubuntu:focal | ||
FROM ubuntu:jammy | ||
|
||
ARG DEBIAN_FRONTEND=noninteractive | ||
|
||
# PHP | ||
RUN apt-get update -y | ||
RUN apt-get update -y && \ | ||
apt install -y apache2 vim software-properties-common sudo nano gnupg2 | ||
|
||
RUN apt-get install --no-install-recommends -y \ | ||
php7.4 \ | ||
php7.4-gd \ | ||
php7.4-zip \ | ||
php7.4-curl \ | ||
php7.4-xml \ | ||
php7.4-mbstring \ | ||
php7.4-sqlite \ | ||
php7.4-xdebug \ | ||
php7.4-pgsql \ | ||
php7.4-intl \ | ||
php7.4-imagick \ | ||
php7.4-gmp \ | ||
php7.4-apcu \ | ||
php7.4-bcmath \ | ||
php8.1 \ | ||
php8.1-common \ | ||
php8.1-gd \ | ||
php8.1-zip \ | ||
php8.1-curl \ | ||
php8.1-xml \ | ||
php8.1-xmlrpc \ | ||
php8.1-mbstring \ | ||
php8.1-sqlite \ | ||
php8.1-xdebug \ | ||
php8.1-pgsql \ | ||
php8.1-intl \ | ||
php8.1-imagick \ | ||
php8.1-gmp \ | ||
php8.1-apcu \ | ||
php8.1-bcmath \ | ||
php8.1-redis \ | ||
php8.1-soap \ | ||
php8.1-imap \ | ||
php8.1-opcache \ | ||
php8.1-cli \ | ||
php8.1-dev \ | ||
libmagickcore-6.q16-3-extra \ | ||
curl \ | ||
vim \ | ||
lsof \ | ||
make \ | ||
nodejs \ | ||
npm | ||
unzip | ||
|
||
# Composer | ||
RUN curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php && \ | ||
curl -sS https://composer.github.io/installer.sig -o /tmp/composer-setup.sig && \ | ||
php -r "if (hash_file('sha384', '/tmp/composer-setup.php') !== trim(file_get_contents('/tmp/composer-setup.sig'))) { echo 'Composer installation failed, invalid hash'; exit(1); }" && \ | ||
php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer && \ | ||
rm /tmp/composer-setup.php /tmp/composer-setup.sig | ||
|
||
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini | ||
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/cli/conf.d/20-xdebug.ini | ||
RUN echo "xdebug.remote_enable = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \ | ||
echo "xdebug.remote_autostart = 1" >> /etc/php/8.1/cli/conf.d/20-xdebug.ini && \ | ||
echo "apc.enable_cli=1" >> /etc/php/8.1/cli/conf.d/20-apcu.ini | ||
|
||
# Autostart XDebug for apache | ||
RUN { \ | ||
echo "xdebug.mode=debug"; \ | ||
echo "xdebug.start_with_request=yes"; \ | ||
} >> /etc/php/8.1/apache2/conf.d/20-xdebug.ini | ||
|
||
# Docker | ||
RUN apt-get -y install \ | ||
apt-transport-https \ | ||
ca-certificates \ | ||
curl \ | ||
gnupg-agent \ | ||
software-properties-common | ||
RUN curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - | ||
RUN add-apt-repository \ | ||
software-properties-common && \ | ||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \ | ||
add-apt-repository \ | ||
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \ | ||
$(lsb_release -cs) \ | ||
stable" | ||
RUN apt-get update -y | ||
RUN apt-get install -y docker-ce docker-ce-cli containerd.io | ||
RUN ln -s /var/run/docker-host.sock /var/run/docker.sock | ||
stable" && \ | ||
apt-get update -y && \ | ||
apt-get install -y docker-ce docker-ce-cli containerd.io && \ | ||
ln -s /var/run/docker-host.sock /var/run/docker.sock | ||
|
||
# Dedicated DevContainer user runs Apache | ||
ENV APACHE_RUN_USER=devcontainer | ||
ENV APACHE_RUN_GROUP=devcontainer | ||
RUN useradd -ms /bin/bash ${APACHE_RUN_USER} && \ | ||
adduser ${APACHE_RUN_USER} sudo && \ | ||
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ | ||
sed -ri "s/^export APACHE_RUN_USER=.*$/export APACHE_RUN_USER=${APACHE_RUN_USER}/" "/etc/apache2/envvars" && \ | ||
sed -ri "s/^export APACHE_RUN_GROUP=.*$/export APACHE_RUN_GROUP=${APACHE_RUN_GROUP}/" "/etc/apache2/envvars" | ||
|
||
USER devcontainer | ||
|
||
# NVM | ||
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash | ||
RUN bash --login -i -c 'source /home/devcontainer/.bashrc && nvm install 16' | ||
|
||
WORKDIR /var/www/html |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# Nextcloud DevContainer | ||
|
||
## Usage | ||
|
||
Make sure you have the [VSCode DevContainer](https://code.visualstudio.com/docs/devcontainers/containers) extensions installed. If you open the project, VSCode will ask you if you want to open it inside of the DevContainer. If that's not the case, use <kbd>F1</kbd>→*Dev Containers: Open Folder in Container*. | ||
|
||
Alternatively open the project directly in [GitHub Codespaces](https://github.com/features/codespaces). | ||
|
||
That's already it. Everything else will be configured automatically by the Containers startup routine. | ||
|
||
## Credentials | ||
|
||
On first start the Container installs and configures Nextcloud with the following credentials: | ||
|
||
**Nextcloud Admin Login** | ||
|
||
Username: `admin` <br> | ||
Password: `admin` | ||
|
||
**Postgres credentials** | ||
|
||
Username: `postgres` <br> | ||
Password: `postgres` <br> | ||
Database: `postgres` | ||
|
||
## Services | ||
|
||
The following services will be started: | ||
|
||
| Service | Local port | Description | | ||
|---------|------------|-------------| | ||
| Nextcloud (served via Apache) | `80` | The main application | | ||
| Mailhog | `8025` | SMTP email delivery for testing | | ||
| Adminer | `8080` | Database viewer. Use credentials from above and connect to `localhost` to get access to the NC database | | ||
|
||
## Permissions | ||
|
||
The container runs with the user `devcontainer` who is also running the Apache2 process. All mounted source files have | ||
proper permissions so that this user can access everything which is inside the current workspace. If you need to | ||
get root permissions for whatever reason, use `sudo su` or `sudo <command>` (for example `sudo service apache2 restart`). | ||
Everything else (like building the application, adjusting files, ...) should be done as `devcontainer` user. | ||
|
||
## NodeJs and NVM | ||
|
||
The container comes with [`nvm`](https://github.com/nvm-sh/nvm) and Node 16 installed. This should be sufficient to | ||
build Nextcloud Core sources via `make`. If you need a different Node Version (for example for | ||
app development), you can easily switch between different versions by running: | ||
|
||
```bash | ||
# Install and use Node 14 | ||
nvm install 14 | ||
nvm use 14 | ||
|
||
# Check version | ||
node -v | ||
|
||
# Switch back to Node 16 | ||
nvm use 16 | ||
|
||
# Check version | ||
node -v | ||
``` | ||
|
||
Note that `nvm` is only installed for the user `devcontainer` and won't work out of the box for | ||
any other user. | ||
|
||
## Debugging | ||
|
||
The Apache webserver is already configured to automatically try to connect to a debugger process | ||
listening on port `9003`. To start the VSCode debugger process, use the delivered debug profile `Listen for XDebug`. | ||
After you started the VSCode debugger, just navigate to the appropriate Nextcloud URL to get your | ||
debug hits. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/bash | ||
|
||
sudo service apache2 start | ||
|
||
while sleep 1000; do :; done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
// Use IntelliSense to learn about possible attributes. | ||
// Hover to view descriptions of existing attributes. | ||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||
"version": "0.2.0", | ||
"configurations": [ | ||
{ | ||
"name": "Listen for Xdebug", | ||
"type": "php", | ||
"request": "launch", | ||
"port": 9003 | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/bash | ||
|
||
# Set git safe.directory | ||
git config --global --add safe.directory /var/www/html | ||
git config --global --add safe.directory /var/www/html/3rdparty |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.