Last active
March 21, 2021 17:36
-
-
Save drubb/40edc29f3df096c2d23f603b40ae3ebb to your computer and use it in GitHub Desktop.
Setup browser-based Phpstorm instance for Drupal and JavaScript development using Docker and Caddy Server
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
your.editor.domain { | |
reverse_proxy phpstorm:8887 | |
basicauth { | |
username WHATEVERYOUGENERATEASSECRETKEYUSINGCADDY | |
} | |
} | |
your.preview.domain { | |
reverse_proxy phpstorm:3000 | |
basicauth { | |
username WHATEVERYOUGENERATEASSECRETKEYUSINGCADDY | |
} | |
} |
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
version: "2" | |
services: | |
caddy: | |
image: caddy:2 | |
container_name: caddy | |
ports: | |
- "80:80" | |
- "443:443" | |
volumes: | |
- ./Caddyfile:/etc/caddy/Caddyfile | |
- ./data/caddy/data:/data | |
- ./data/caddy/config:/config | |
depends_on: | |
- phpstorm | |
phpstorm: | |
build: | |
context: . | |
dockerfile: Dockerfile | |
container_name: phpstorm | |
environment: | |
- DRUSH_OPTIONS_URI=your.preview.domain | |
- DRUSH_COMMAND_RUNSERVER_OPTIONS_DEFAULT_SERVER=0.0.0.0:3000 | |
expose: | |
- 8887 | |
- 9003 | |
volumes: | |
- ./data/phpstorm:/home/projector-user | |
restart: always |
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
FROM registry.jetbrains.team/p/prj/containers/projector-phpstorm | |
ARG DEBIAN_FRONTEND=noninteractive | |
USER root | |
RUN apt-get update -yq \ | |
# Install some common packages | |
&& apt-get install curl sqlite3 wget unzip -yq \ | |
# Install PHP CLI with some extensions for Drupal development | |
&& apt-get install php-cli php-apcu php-curl php-dom php-gd php-mbstring php-sqlite3 php-zip -yq \ | |
&& apt-get install php-pear php-dev -yq \ | |
&& pear config-set php_ini /etc/php/7.3/cli/php.ini \ | |
&& pecl install xdebug \ | |
&& echo 'xdebug.mode=debug,develop' >> /etc/php/7.3/cli/php.ini \ | |
# Install NodeJS LTS | |
&& curl -sL https://deb.nodesource.com/setup_lts.x | bash \ | |
&& apt-get install nodejs -yq \ | |
# Install Composer | |
&& wget https://getcomposer.org/installer \ | |
&& php installer --install-dir=/usr/local/bin --filename=composer \ | |
# Install global Drush launcher | |
&& wget -O /usr/local/bin/drush https://github.com/drush-ops/drush-launcher/releases/latest/download/drush.phar \ | |
&& chmod +x /usr/local/bin/drush \ | |
# Clean up some things | |
&& chown -R projector-user:projector-user /home/projector-user \ | |
&& rm installer \ | |
&& rm -rf /var/lib/apt/lists/* | |
USER projector-user |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment