diff options
author | Christoph Jahn <christoph.jahn@scherdel.de> | 2019-08-07 12:18:51 +0200 |
---|---|---|
committer | Christoph Jahn <cj@road42.de> | 2019-08-28 10:13:09 +0000 |
commit | 3978c08757aa0c5fbd41f6e9138033ff580c7b52 (patch) | |
tree | 8d03818ff30b8775be797442c86c44346073f0db | |
parent | a97360dcfba2bf1dd1be115dd91dd1dde49ded69 (diff) | |
download | wekan-3978c08757aa0c5fbd41f6e9138033ff580c7b52.tar.gz wekan-3978c08757aa0c5fbd41f6e9138033ff580c7b52.tar.bz2 wekan-3978c08757aa0c5fbd41f6e9138033ff580c7b52.zip |
Add debugging in containers for vscode
-rw-r--r-- | .devcontainer/Dockerfile | 145 | ||||
-rw-r--r-- | .devcontainer/build.sh | 12 | ||||
-rw-r--r-- | .devcontainer/devcontainer.json | 17 | ||||
-rw-r--r-- | .devcontainer/docker-compose.yml | 53 | ||||
-rw-r--r-- | .gitattributes | 3 |
5 files changed, 230 insertions, 0 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..9543ca92 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,145 @@ +FROM ubuntu:disco +LABEL maintainer="sgr" + +ENV BUILD_DEPS="gnupg gosu bsdtar wget curl bzip2 g++ build-essential python git ca-certificates" +ENV DEBIAN_FRONTEND=noninteractive + +ENV \ + DEBUG=false \ + NODE_VERSION=8.16.0 \ + METEOR_RELEASE=1.8.1 \ + USE_EDGE=false \ + METEOR_EDGE=1.5-beta.17 \ + NPM_VERSION=latest \ + FIBERS_VERSION=4.0.1 \ + ARCHITECTURE=linux-x64 \ + SRC_PATH=./ \ + WITH_API=true \ + ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \ + ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \ + ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \ + ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \ + ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \ + ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \ + RICHER_CARD_COMMENT_EDITOR=true \ + MAX_IMAGE_PIXEL="" \ + IMAGE_COMPRESS_RATIO="" \ + BIGEVENTS_PATTERN="" \ + NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \ + NOTIFY_DUE_AT_HOUR_OF_DAY="" \ + EMAIL_NOTIFICATION_TIMEOUT=30000 \ + MATOMO_ADDRESS="" \ + MATOMO_SITE_ID="" \ + MATOMO_DO_NOT_TRACK=true \ + MATOMO_WITH_USERNAME=false \ + BROWSER_POLICY_ENABLED=true \ + TRUSTED_URL="" \ + WEBHOOKS_ATTRIBUTES="" \ + OAUTH2_ENABLED=false \ + OAUTH2_LOGIN_STYLE=redirect \ + OAUTH2_CLIENT_ID="" \ + OAUTH2_SECRET="" \ + OAUTH2_SERVER_URL="" \ + OAUTH2_AUTH_ENDPOINT="" \ + OAUTH2_USERINFO_ENDPOINT="" \ + OAUTH2_TOKEN_ENDPOINT="" \ + OAUTH2_ID_MAP="" \ + OAUTH2_USERNAME_MAP="" \ + OAUTH2_FULLNAME_MAP="" \ + OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" \ + OAUTH2_REQUEST_PERMISSIONS='openid profile email' \ + OAUTH2_EMAIL_MAP="" \ + LDAP_ENABLE=false \ + LDAP_PORT=389 \ + LDAP_HOST="" \ + LDAP_BASEDN="" \ + LDAP_LOGIN_FALLBACK=false \ + LDAP_RECONNECT=true \ + LDAP_TIMEOUT=10000 \ + LDAP_IDLE_TIMEOUT=10000 \ + LDAP_CONNECT_TIMEOUT=10000 \ + LDAP_AUTHENTIFICATION=false \ + LDAP_AUTHENTIFICATION_USERDN="" \ + LDAP_AUTHENTIFICATION_PASSWORD="" \ + LDAP_LOG_ENABLED=false \ + LDAP_BACKGROUND_SYNC=false \ + LDAP_BACKGROUND_SYNC_INTERVAL="" \ + LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false \ + LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false \ + LDAP_ENCRYPTION=false \ + LDAP_CA_CERT="" \ + LDAP_REJECT_UNAUTHORIZED=false \ + LDAP_USER_AUTHENTICATION=false \ + LDAP_USER_AUTHENTICATION_FIELD=uid \ + LDAP_USER_SEARCH_FILTER="" \ + LDAP_USER_SEARCH_SCOPE="" \ + LDAP_USER_SEARCH_FIELD="" \ + LDAP_SEARCH_PAGE_SIZE=0 \ + LDAP_SEARCH_SIZE_LIMIT=0 \ + LDAP_GROUP_FILTER_ENABLE=false \ + LDAP_GROUP_FILTER_OBJECTCLASS="" \ + LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE="" \ + LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE="" \ + LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT="" \ + LDAP_GROUP_FILTER_GROUP_NAME="" \ + LDAP_UNIQUE_IDENTIFIER_FIELD="" \ + LDAP_UTF8_NAMES_SLUGIFY=true \ + LDAP_USERNAME_FIELD="" \ + LDAP_FULLNAME_FIELD="" \ + LDAP_MERGE_EXISTING_USERS=false \ + LDAP_EMAIL_FIELD="" \ + LDAP_EMAIL_MATCH_ENABLE=false \ + LDAP_EMAIL_MATCH_REQUIRE=false \ + LDAP_EMAIL_MATCH_VERIFIED=false \ + LDAP_SYNC_USER_DATA=false \ + LDAP_SYNC_USER_DATA_FIELDMAP="" \ + LDAP_SYNC_GROUP_ROLES="" \ + LDAP_DEFAULT_DOMAIN="" \ + LDAP_SYNC_ADMIN_STATUS="" \ + LDAP_SYNC_ADMIN_GROUPS="" \ + HEADER_LOGIN_ID="" \ + HEADER_LOGIN_FIRSTNAME="" \ + HEADER_LOGIN_LASTNAME="" \ + HEADER_LOGIN_EMAIL="" \ + LOGOUT_WITH_TIMER=false \ + LOGOUT_IN="" \ + LOGOUT_ON_HOURS="" \ + LOGOUT_ON_MINUTES="" \ + CORS="" \ + CORS_ALLOW_HEADERS="" \ + CORS_EXPOSE_HEADERS="" \ + DEFAULT_AUTHENTICATION_METHOD="" + +# Install OS +RUN set -o xtrace \ + && useradd --user-group -m --system --home-dir /home/wekan wekan \ + && apt-get update \ + && apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \ + && apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} + +# Install NodeJS +RUN set -o xtrace \ + && cd /tmp \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" \ + && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ + && grep " node-v$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \ + && tar -xJf "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ + && rm "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt.asc \ + && ln -s /usr/local/bin/node /usr/local/bin/nodejs \ + && npm install -g npm@${NPM_VERSION} + +ENV DEBIAN_FRONTEND=dialog + +USER wekan + +# Install Meteor +RUN set -o xtrace \ + && cd /home/wekan \ + && curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \ + # Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39 + && sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \ + && sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \ + && printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \ + && sh /home/wekan/install-meteor.sh + +ENV PATH=$PATH:$HOME/.meteor/ diff --git a/.devcontainer/build.sh b/.devcontainer/build.sh new file mode 100644 index 00000000..e9de3e8f --- /dev/null +++ b/.devcontainer/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +cd /app +rm -rf node_modules +/home/wekan/.meteor/meteor npm install +rm -rf .build +/home/wekan/.meteor/meteor build .build --directory +cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js +cd .build/bundle/programs/server +rm -rf node_modules +/home/wekan/.meteor/meteor npm install +cd /app
\ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..6a1faa65 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,17 @@ +// See https://aka.ms/vscode-remote/devcontainer.json for format details. +{ + "dockerComposeFile": "docker-compose.yml", + "service": "wekan-dev", + "workspaceFolder": "/app", + "extensions": [ + "mutantdino.resourcemonitor", + "editorconfig.editorconfig", + "dbaeumer.vscode-eslint", + "codezombiech.gitignore", + "eamodio.gitlens", + "gruntfuggly.todo-tree", + "dotjoshjohnson.xml", + "redhat.vscode-yaml", + "vuhrmeister.vscode-meteor" + ] +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000..0f5f272b --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3.7' + +services: + + wekandb-dev: + image: mongo:4.0.11 + container_name: wekan-dev-db + restart: unless-stopped + command: mongod --smallfiles --oplogSize 128 + networks: + - wekan-dev-tier + expose: + - 27017 + volumes: + - wekan-dev-db:/data/db + - wekan-dev-db-dump:/dump + + wekan-dev: + container_name: wekan-dev-app + restart: always + networks: + - wekan-dev-tier + build: + context: . + dockerfile: Dockerfile + ports: + - 3000:3000 + - 9229:9229 + environment: + - MONGO_URL=mongodb://wekandb-dev:27017/wekan + - ROOT_URL=http://localhost:3000 + #- MAIL_URL=smtp://user:pass@mailserver.example.com:25/ + - MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false} + - MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com> + - WITH_API=true + - RICHER_CARD_COMMENT_EDITOR=true + - BROWSER_POLICY_ENABLED=true + depends_on: + - wekandb-dev + volumes: + - ..:/app + command: + sleep infinity + +volumes: + wekan-dev-db: + driver: local + wekan-dev-db-dump: + driver: local + +networks: + wekan-dev-tier: + driver: bridge diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..5dc46e6b --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +* text=auto eol=lf +*.{cmd,[cC][mM][dD]} text eol=crlf +*.{bat,[bB][aA][tT]} text eol=crlf
\ No newline at end of file |