diff --git a/README.md b/README.md index 760f0e4..739c5d8 100644 --- a/README.md +++ b/README.md @@ -14,5 +14,6 @@ tags: [docker, container, laravel, php] ## TODO - [ ] Fix PHPMyAdmin work. -- [ ] Fix Coder 80/443 ports proxy. -- [ ] Download and unzip archive instead git clone for repositories. +- [ ] Download and unzip archive instead git clone for some repositories. +- [ ] Postgresql support +- [ ] Support Docker inside Coder container diff --git a/build/Dockerfile b/build/Dockerfile index 1594179..d375e41 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -29,7 +29,7 @@ RUN apt-get update \ php8.3-ldap \ php8.3-msgpack php8.3-igbinary php8.3-redis php8.3-swoole \ php8.3-memcached php8.3-pcov php8.3-imagick php8.3-xdebug \ - php8.3-fpm libapache2-mod-php8.3 \ + php8.3-fpm libapache2-mod-php8.3 php8.3-mailparse \ && curl -sLS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer \ && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \ diff --git a/build/start.sh b/build/start.sh index 07a0412..ce98859 100644 --- a/build/start.sh +++ b/build/start.sh @@ -7,6 +7,8 @@ cd $WORKDIR sudo chown -R $USER:$USER /var/www/html sudo chown -R $USER:$USER /home/$USER +sudo rm -rf $WORKDIR/* + if [ ! -z "$WWWUSER" ]; then sudo usermod -u $WWWUSER $USER fi @@ -20,7 +22,7 @@ sudo service apache2 start sudo service apache2 reload # install and start code-server -curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/tmp/code-server --version 4.22.1 +curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/tmp/code-server /tmp/code-server/bin/code-server --auth none --port 13337 >/tmp/code-server.log 2>&1 & if [ -z "$(ls -A $WORKDIR)" ]; then @@ -56,6 +58,10 @@ EOSQL /usr/bin/php8.3 artisan key:generate /usr/bin/php8.3 artisan migrate + + if $SEED; then + /usr/bin/php8.3 artisan db:seed + fi fi sudo /usr/bin/supervisord -s -c /etc/supervisor/conf.d/supervisord.conf >/tmp/supervisor.log 2>&1 & diff --git a/main.tf b/main.tf index c5275f2..a5f0b71 100644 --- a/main.tf +++ b/main.tf @@ -26,7 +26,7 @@ module "filebrowser" { source = "registry.coder.com/modules/filebrowser/coder" version = "1.0.8" agent_id = coder_agent.main.id - folder = "/var/www/html/project" + folder = "/var/www/html" } module "jetbrains_gateway" { @@ -34,8 +34,8 @@ module "jetbrains_gateway" { version = "1.0.9" agent_id = coder_agent.main.id agent_name = "main" - folder = "/var/www/html/project" - jetbrains_ides = ["GO", "WS", "IU", "PS"] + folder = "/var/www/html" + jetbrains_ides = ["WS", "IU", "PS"] default = "IU" } @@ -63,17 +63,33 @@ resource "coder_app" "phpmyadmin" { subdomain = false } +resource "coder_app" "code-server" { + agent_id = coder_agent.main.id + slug = "code-server" + display_name = "VS Code Online" + url = "http://localhost:13337/?folder=/var/www/html" + icon = "/icon/code.svg" + subdomain = false + share = "owner" + + healthcheck { + url = "http://localhost:13337/healthz" + interval = 5 + threshold = 6 + } +} + resource "coder_agent" "main" { arch = data.coder_provisioner.me.arch os = "linux" startup_script = "/usr/local/bin/start.sh" - # dir = "/var/www/html/project" + dir = "/var/www/html" env = { - GIT_AUTHOR_NAME = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner) + GIT_AUTHOR_NAME = data.coder_workspace.me.owner GIT_AUTHOR_EMAIL = data.coder_workspace.me.owner_email - GIT_COMMITTER_NAME = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner) + GIT_COMMITTER_NAME = data.coder_workspace.me.owner GIT_COMMITTER_EMAIL = data.coder_workspace.me.owner_email GITHUB_TOKEN = data.coder_external_auth.github.access_token } @@ -121,7 +137,6 @@ resource "coder_agent" "main" { metadata { display_name = "Load Average (Host)" key = "6_load_host" - # get load avg scaled by number of cores script = <