Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
0a332143
Commit
0a332143
authored
Apr 22, 2022
by
Nicolas Giard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: setup vscode devcontainer environment
parent
64cdc9f9
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
227 additions
and
63 deletions
+227
-63
Dockerfile
.devcontainer/Dockerfile
+62
-0
devcontainer.json
.devcontainer/devcontainer.json
+74
-30
docker-compose.yml
.devcontainer/docker-compose.yml
+54
-0
init.sh
.devcontainer/init.sh
+8
-0
pgadmin-servers.json
.devcontainer/pgadmin-servers.json
+13
-0
extensions.json
.vscode/extensions.json
+0
-2
docker-compose.yml
dev/containers/docker-compose.yml
+16
-31
No files found.
.devcontainer/Dockerfile
0 → 100644
View file @
0a332143
# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster
ARG
VARIANT=16-bullseye
FROM
mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT}
# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
# && apt-get -y install --no-install-recommends <your-package-list-here>
# [Optional] Uncomment if you want to install an additional version of node using nvm
# ARG EXTRA_NODE_VERSION=10
# RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}"
# [Optional] Uncomment if you want to install more global node modules
# RUN su node -c "npm install -g <your-package-list-here>"
EXPOSE
3000
ENV
DEBIAN_FRONTEND=noninteractive
# Add Docker Source
RUN
curl
-fsSL
https://download.docker.com/linux/debian/gpg | gpg
--dearmor
-o
/usr/share/keyrings/docker-archive-keyring.gpg
RUN
echo
"deb [arch=
$(
dpkg
--print-architecture
)
signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian
\
$(
lsb_release
-cs
)
stable"
|
tee
/etc/apt/sources.list.d/docker.list
>
/dev/null
# Install the packages we need
RUN
apt-get update
&&
export
DEBIAN_FRONTEND
=
noninteractive
&&
apt-get
install
-qy
\
bash
\
build-essential
\
curl
\
docker-ce-cli
\
jq
\
less
\
git
\
gnupg
\
gnupg2
\
nano
\
pandoc
\
unzip
\
wget
# avoid million NPM install messages
ENV
npm_config_loglevel warn
# allow installing when the main user is root
ENV
npm_config_unsafe_perm true
# disable NPM funding messages
ENV
npm_config_fund false
# Colorize the bash shell
RUN
sed
-i
's/#force_color_prompt=/force_color_prompt=/'
/root/.bashrc
# Fetch wait-for utility
ADD
https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
RUN
chmod
+rx /usr/local/bin/wait-for
# Copy the startup file
COPY
init.sh /docker-init.sh
RUN
sed
-i
's/\r$//'
/docker-init.sh
&&
\
chmod
+x /docker-init.sh
# Create workspace
RUN
mkdir
-p
/workspace
WORKDIR
/workspace
.devcontainer/devcontainer.json
View file @
0a332143
//
How
to
get
remote
container
development
working
with
VSCode
:
//
1
.
Install
"Remote Development"
extension
pack
(ms-vscode-remote.vscode-remote-extensionpack)
//
2
.
Select
"Remote Containers - Reopen in container"
//
For
format
details
,
see
https
:
//aka.ms/devcontainer.json.
For
config
options
,
see
the
README
at
:
//
https
:
//github.com/microsoft/vscode-dev-containers/tree/v
0.231
.
6
/containers/javascript-node-postgres
//
Update
the
VARIANT
arg
in
docker-compose.yml
to
pick
a
Node.js
version
{
"name"
:
"Wiki.js"
,
"dockerComposeFile"
:
[
"../dev/containers/docker-compose.yml"
],
"forwardPorts"
:
[
3000
,
3001
],
"service"
:
"wiki"
,
"workspaceFolder"
:
"/wiki"
,
"settings"
:
{
"terminal.integrated.shell.linux"
:
"/bin/bash"
"name"
:
"Wiki.js Dev"
,
"dockerComposeFile"
:
"docker-compose.yml"
,
"service"
:
"app"
,
"workspaceFolder"
:
"/workspace"
,
"shutdownAction"
:
"stopCompose"
,
//
Set
*default*
container
specific
settings.json
values
on
container
create.
"settings"
:
{
"terminal.integrated.defaultProfile.linux"
:
"zsh"
,
"sqltools.connections"
:
[
//
Default
connection
to
dev
DB
container
{
"name"
:
"Local Dev"
,
"server"
:
"db"
,
"port"
:
5432
,
"database"
:
"postgres"
,
"username"
:
"postgres"
,
"password"
:
"postgres"
,
"driver"
:
"PostgreSQL"
,
"askForPassword"
:
false
,
"connectionTimeout"
:
60
}
]
},
//
Add
the
IDs
of
extensions
you
want
installed
when
the
container
is
created.
"extensions"
:
[
"dbaeumer.vscode-eslint"
,
"eamodio.gitlens"
,
"johnsoncodehk.volar"
,
"oderwat.indent-rainbow"
,
"redhat.vscode-yaml"
,
"visualstudioexptteam.vscodeintellicode"
,
"editorconfig.editorconfig"
,
"mrmlnc.vscode-duplicate"
,
"mtxr.sqltools-driver-pg"
,
"mutantdino.resourcemonitor"
,
"wayou.vscode-todo-highlight"
],
//
Use
'forwardPorts'
to
make
a
list
of
ports
inside
the
container
available
locally.
//
This
can
be
used
to
network
with
other
containers
or
with
the
host.
"forwardPorts"
:
[
3000
,
5432
,
8000
],
"portsAttributes"
:
{
"3000"
:
{
"label"
:
"Wiki.js"
,
"onAutoForward"
:
"notify"
},
"5432"
:
{
"label"
:
"PostgreSQL"
,
"onAutoForward"
:
"silent"
},
"8000"
:
{
"label"
:
"PGAdmin"
,
"onAutoForward"
:
"silent"
}
},
"extensions"
:
[
"EditorConfig.editorconfig"
,
"dbaeumer.vscode-eslint"
,
"christian-kohler.path-intellisense"
,
"mrmlnc.vscode-puglint"
,
"octref.vetur"
,
"dzannotti.vscode-babel-coloring"
,
"wayou.vscode-todo-highlight"
,
"visualstudioexptteam.vscodeintellicode"
,
"lukas-tr.materialdesignicons-intellisense"
,
"codezombiech.gitignore"
,
"kumar-harsh.graphql-for-vscode"
,
"mrmlnc.vscode-duplicate"
,
"oderwat.indent-rainbow"
,
"christian-kohler.npm-intellisense"
],
"postCreateCommand"
:
[
"yarn"
,
"install"
]
//
Use
'postCreateCommand'
to
run
commands
after
the
container
is
created.
"postCreateCommand"
:
"/docker-init.sh"
,
//
Comment
out
to
connect
as
root
instead.
More
info
:
https
:
//aka.ms/vscode-remote/containers/non-root.
//
"remoteUser"
:
"node"
,
"features"
:
{
"common"
:
{
"installZsh"
:
true
,
"installOhMyZsh"
:
true
,
"upgradePackages"
:
true
},
"github-cli"
:
"latest"
}
}
.devcontainer/docker-compose.yml
0 → 100644
View file @
0a332143
version
:
'
3.8'
services
:
app
:
build
:
context
:
.
dockerfile
:
Dockerfile
args
:
# Update 'VARIANT' to pick an LTS version of Node.js: 16, 14, 12.
# Append -bullseye or -buster to pin to an OS version.
# Use -bullseye variants on local arm64/Apple Silicon.
VARIANT
:
16-bullseye
volumes
:
-
..:/workspace:cached
-
wiki-vscode-ext:/root/.vscode-server/extensions
# Overrides default command so things don't shut down after the process ends.
command
:
sleep infinity
# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
network_mode
:
service:db
# Uncomment the next line to use a non-root user for all processes.
# user: node
# Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
# (Adding the "ports" property to this file will not forward from a Codespace.)
db
:
image
:
postgres:latest
restart
:
unless-stopped
volumes
:
-
postgres-data:/var/lib/postgresql/data
environment
:
POSTGRES_PASSWORD
:
postgres
POSTGRES_USER
:
postgres
POSTGRES_DB
:
postgres
pgadmin
:
image
:
dpage/pgadmin4:latest
environment
:
-
PGADMIN_DEFAULT_EMAIL=dev@js.wiki
-
PGADMIN_DEFAULT_PASSWORD=123123
-
PGADMIN_DISABLE_POSTFIX=True
-
PGADMIN_LISTEN_PORT=8000
-
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False
network_mode
:
service:db
volumes
:
-
./pgadmin-servers.json:/pgadmin4/servers.json
volumes
:
postgres-data
:
wiki-vscode-ext
:
.devcontainer/init.sh
0 → 100644
View file @
0a332143
#!/bin/bash
cd
/workspace
git config codespaces-theme.hide-status 1
git config oh-my-zsh.hide-info 1
echo
"Ready!"
.devcontainer/pgadmin-servers.json
0 → 100644
View file @
0a332143
{
"Servers"
:
{
"1"
:
{
"Name"
:
"Dev"
,
"Group"
:
"Servers"
,
"Port"
:
5432
,
"Username"
:
"postgres"
,
"Host"
:
"db"
,
"SSLMode"
:
"prefer"
,
"MaintenanceDB"
:
"postgres"
}
}
}
.vscode/extensions.json
View file @
0a332143
...
...
@@ -2,8 +2,6 @@
"recommendations"
:
[
"EditorConfig.editorconfig"
,
"dbaeumer.vscode-eslint"
,
"christian-kohler.path-intellisense"
,
"mrmlnc.vscode-puglint"
,
"octref.vetur"
]
}
dev/containers/docker-compose.yml
View file @
0a332143
# -- DEV DOCKER-COMPOSE --
# -- DO NOT USE IN PRODUCTION! --
version
:
"
3"
version
:
"
3
.8
"
services
:
db
:
container_name
:
wiki-db
image
:
postgres:9-alpine
image
:
postgres:11-alpine
environment
:
POSTGRES_DB
:
wiki
POSTGRES_PASSWORD
:
wikijsrocks
POSTGRES_USER
:
wikijs
logging
:
driver
:
"
none"
restart
:
unless-stopped
volumes
:
-
db-data:/var/lib/postgresql/data
ports
:
-
"
15432:5432"
adminer
:
container_name
:
wiki-adminer
image
:
adminer:latest
pgadmin
:
image
:
dpage/pgadmin4:latest
environment
:
PGADMIN_DEFAULT_EMAIL
:
dev@js.wiki
PGADMIN_DEFAULT_PASSWORD
:
"
123123"
PGADMIN_DISABLE_POSTFIX
:
true
PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED
:
False
network_mode
:
service:db
logging
:
driver
:
"
none"
ports
:
-
"
3001:8080"
# solr:
# container_name: wiki-solr
# image: solr:7-alpine
# logging:
# driver: "none"
# ports:
# - "8983:8983"
# volumes:
# - solr-data:/opt/solr/server/solr/mycores
# entrypoint:
# - docker-entrypoint.sh
# - solr-precreate
# - wiki
wiki
:
container_name
:
wiki-app
build
:
context
:
../..
dockerfile
:
dev/containers/Dockerfile
command
:
sleep infinity
depends_on
:
-
db
ports
:
-
"
3000:3000"
volumes
:
-
../..:/wiki
-
/wiki/node_modules
-
/wiki/.git
-
../..:/workspace
network_mode
:
service:db
ipc
:
host
init
:
true
volumes
:
db-data
:
# solr-data:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment