mirror of
https://github.com/linuxserver/docker-code-server
synced 2025-06-26 18:27:40 +00:00
Compare commits
3 Commits
4.17.1-ls1
...
4.17.1-ls1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64a00a9744 | ||
|
|
31e2f77d49 | ||
|
|
b03eace8f8 |
77
Jenkinsfile
vendored
77
Jenkinsfile
vendored
@@ -16,7 +16,6 @@ pipeline {
|
|||||||
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
||||||
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
||||||
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
||||||
SCARF_TOKEN=credentials('scarf_api_key')
|
|
||||||
CONTAINER_NAME = 'code-server'
|
CONTAINER_NAME = 'code-server'
|
||||||
BUILD_VERSION_ARG = 'CODE_RELEASE'
|
BUILD_VERSION_ARG = 'CODE_RELEASE'
|
||||||
LS_USER = 'linuxserver'
|
LS_USER = 'linuxserver'
|
||||||
@@ -329,12 +328,12 @@ pipeline {
|
|||||||
else
|
else
|
||||||
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
fi
|
fi
|
||||||
mkdir -p ${TEMPDIR}/gitbook
|
mkdir -p ${TEMPDIR}/docs
|
||||||
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
|
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
|
||||||
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
|
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
|
||||||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
|
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
|
||||||
cd ${TEMPDIR}/gitbook/docker-documentation/
|
cd ${TEMPDIR}/docs/docker-documentation
|
||||||
git add images/docker-${CONTAINER_NAME}.md
|
git add docs/images/docker-${CONTAINER_NAME}.md
|
||||||
git commit -m 'Bot Updating Documentation'
|
git commit -m 'Bot Updating Documentation'
|
||||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
|
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
|
||||||
fi
|
fi
|
||||||
@@ -425,35 +424,6 @@ pipeline {
|
|||||||
"visibility":"public"}' '''
|
"visibility":"public"}' '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* #######################
|
|
||||||
Scarf.sh package registry
|
|
||||||
####################### */
|
|
||||||
// Add package to Scarf.sh and set permissions
|
|
||||||
stage("Scarf.sh package registry"){
|
|
||||||
when {
|
|
||||||
branch "master"
|
|
||||||
environment name: 'EXIT_STATUS', value: ''
|
|
||||||
}
|
|
||||||
steps{
|
|
||||||
sh '''#! /bin/bash
|
|
||||||
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/code-server") | .uuid' || :)
|
|
||||||
if [ -z "${PACKAGE_UUID}" ]; then
|
|
||||||
echo "Adding package to Scarf.sh"
|
|
||||||
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
|
|
||||||
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{"name":"linuxserver/code-server",\
|
|
||||||
"shortDescription":"example description",\
|
|
||||||
"libraryType":"docker",\
|
|
||||||
"website":"https://github.com/linuxserver/docker-code-server",\
|
|
||||||
"backendUrl":"https://ghcr.io/linuxserver/code-server",\
|
|
||||||
"publicUrl":"https://lscr.io/linuxserver/code-server"}' || :
|
|
||||||
else
|
|
||||||
echo "Package already exists on Scarf.sh"
|
|
||||||
fi
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* ###############
|
/* ###############
|
||||||
Build Container
|
Build Container
|
||||||
############### */
|
############### */
|
||||||
@@ -849,6 +819,41 @@ pipeline {
|
|||||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
|
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Add protection to the release branch
|
||||||
|
stage('Github-Release-Branch-Protection') {
|
||||||
|
when {
|
||||||
|
branch "master"
|
||||||
|
environment name: 'CHANGE_ID', value: ''
|
||||||
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
echo "Setting up protection for release branch master"
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \
|
||||||
|
-d $(jq -c . << EOF
|
||||||
|
{
|
||||||
|
"required_status_checks": null,
|
||||||
|
"enforce_admins": false,
|
||||||
|
"required_pull_request_reviews": {
|
||||||
|
"dismiss_stale_reviews": false,
|
||||||
|
"require_code_owner_reviews": false,
|
||||||
|
"require_last_push_approval": false,
|
||||||
|
"required_approving_review_count": 1
|
||||||
|
},
|
||||||
|
"restrictions": null,
|
||||||
|
"required_linear_history": false,
|
||||||
|
"allow_force_pushes": false,
|
||||||
|
"allow_deletions": false,
|
||||||
|
"block_creations": false,
|
||||||
|
"required_conversation_resolution": true,
|
||||||
|
"lock_branch": false,
|
||||||
|
"allow_fork_syncing": false,
|
||||||
|
"required_signatures": false
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
) '''
|
||||||
|
}
|
||||||
|
}
|
||||||
// Use helper container to sync the current README on master to the dockerhub endpoint
|
// Use helper container to sync the current README on master to the dockerhub endpoint
|
||||||
stage('Sync-README') {
|
stage('Sync-README') {
|
||||||
when {
|
when {
|
||||||
|
|||||||
135
README.md
135
README.md
@@ -1,6 +1,5 @@
|
|||||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||||
<!-- Please read the https://github.com/linuxserver/docker-code-server/blob/master/.github/CONTRIBUTING.md -->
|
<!-- Please read https://github.com/linuxserver/docker-code-server/blob/master/.github/CONTRIBUTING.md -->
|
||||||
|
|
||||||
[](https://linuxserver.io)
|
[](https://linuxserver.io)
|
||||||
|
|
||||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||||
@@ -81,7 +80,7 @@ How to create the [hashed password](https://github.com/cdr/code-server/blob/mast
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Here are some example snippets to help you get started creating a container.
|
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
|
||||||
|
|
||||||
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||||
|
|
||||||
@@ -127,12 +126,11 @@ docker run -d \
|
|||||||
-v /path/to/appdata/config:/config \
|
-v /path/to/appdata/config:/config \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
lscr.io/linuxserver/code-server:latest
|
lscr.io/linuxserver/code-server:latest
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
|
Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
|
||||||
|
|
||||||
| Parameter | Function |
|
| Parameter | Function |
|
||||||
| :----: | --- |
|
| :----: | --- |
|
||||||
@@ -155,10 +153,10 @@ You can set any environment variable from a file by using a special prepend `FIL
|
|||||||
As an example:
|
As an example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
-e FILE__PASSWORD=/run/secrets/mysecretpassword
|
-e FILE__MYVAR=/run/secrets/mysecretvariable
|
||||||
```
|
```
|
||||||
|
|
||||||
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
|
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
|
||||||
|
|
||||||
## Umask for running applications
|
## Umask for running applications
|
||||||
|
|
||||||
@@ -167,15 +165,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
|
|||||||
|
|
||||||
## User / Group Identifiers
|
## User / Group Identifiers
|
||||||
|
|
||||||
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
|
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
|
||||||
|
|
||||||
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
|
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
|
||||||
|
|
||||||
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
|
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ id username
|
id your_user
|
||||||
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
|
||||||
|
```text
|
||||||
|
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docker Mods
|
## Docker Mods
|
||||||
@@ -186,12 +189,29 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
|||||||
|
|
||||||
## Support Info
|
## Support Info
|
||||||
|
|
||||||
* Shell access whilst the container is running: `docker exec -it code-server /bin/bash`
|
* Shell access whilst the container is running:
|
||||||
* To monitor the logs of the container in realtime: `docker logs -f code-server`
|
|
||||||
* container version number
|
```bash
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' code-server`
|
docker exec -it code-server /bin/bash
|
||||||
* image version number
|
```
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/code-server:latest`
|
|
||||||
|
* To monitor the logs of the container in realtime:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker logs -f code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
* Container version number:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker inspect -f '{{ index .Config.Labels "build_version" }}' code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
* Image version number:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/code-server:latest
|
||||||
|
```
|
||||||
|
|
||||||
## Updating Info
|
## Updating Info
|
||||||
|
|
||||||
@@ -201,38 +221,83 @@ Below are the instructions for updating containers:
|
|||||||
|
|
||||||
### Via Docker Compose
|
### Via Docker Compose
|
||||||
|
|
||||||
* Update all images: `docker-compose pull`
|
* Update images:
|
||||||
* or update a single image: `docker-compose pull code-server`
|
* All images:
|
||||||
* Let compose update all containers as necessary: `docker-compose up -d`
|
|
||||||
* or update a single container: `docker-compose up -d code-server`
|
```bash
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
docker-compose pull
|
||||||
|
```
|
||||||
|
|
||||||
|
* Single image:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose pull code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
* Update containers:
|
||||||
|
* All containers:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
* Single container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
* You can also remove the old dangling images:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker image prune
|
||||||
|
```
|
||||||
|
|
||||||
### Via Docker Run
|
### Via Docker Run
|
||||||
|
|
||||||
* Update the image: `docker pull lscr.io/linuxserver/code-server:latest`
|
* Update the image:
|
||||||
* Stop the running container: `docker stop code-server`
|
|
||||||
* Delete the container: `docker rm code-server`
|
```bash
|
||||||
|
docker pull lscr.io/linuxserver/code-server:latest
|
||||||
|
```
|
||||||
|
|
||||||
|
* Stop the running container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker stop code-server
|
||||||
|
```
|
||||||
|
|
||||||
|
* Delete the container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker rm code-server
|
||||||
|
```
|
||||||
|
|
||||||
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
|
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker image prune
|
||||||
|
```
|
||||||
|
|
||||||
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
|
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
|
||||||
|
|
||||||
* Pull the latest image at its tag and replace it with the same env variables in one run:
|
* Pull the latest image at its tag and replace it with the same env variables in one run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
containrrr/watchtower \
|
containrrr/watchtower \
|
||||||
--run-once code-server
|
--run-once code-server
|
||||||
```
|
```
|
||||||
|
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images: `docker image prune`
|
||||||
|
|
||||||
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
|
**warning**: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
|
||||||
|
|
||||||
### Image Update Notifications - Diun (Docker Image Update Notifier)
|
### Image Update Notifications - Diun (Docker Image Update Notifier)
|
||||||
|
|
||||||
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
|
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
|
||||||
|
|
||||||
## Building locally
|
## Building locally
|
||||||
|
|
||||||
|
|||||||
@@ -322,8 +322,8 @@ libtirpc3 1.3.2-2ubuntu0.1
|
|||||||
libudev1 249.11-0ubuntu3.9 deb
|
libudev1 249.11-0ubuntu3.9 deb
|
||||||
libunistring2 1.0-1 deb
|
libunistring2 1.0-1 deb
|
||||||
libuuid1 2.37.2-4ubuntu3 deb
|
libuuid1 2.37.2-4ubuntu3 deb
|
||||||
libx11-6 2:1.7.5-1ubuntu0.2 deb
|
libx11-6 2:1.7.5-1ubuntu0.3 deb
|
||||||
libx11-data 2:1.7.5-1ubuntu0.2 deb
|
libx11-data 2:1.7.5-1ubuntu0.3 deb
|
||||||
libxau6 1:1.0.9-1build5 deb
|
libxau6 1:1.0.9-1build5 deb
|
||||||
libxcb1 1.14-3ubuntu3 deb
|
libxcb1 1.14-3ubuntu3 deb
|
||||||
libxdmcp6 1:1.1.3-0ubuntu5 deb
|
libxdmcp6 1:1.1.3-0ubuntu5 deb
|
||||||
@@ -332,7 +332,7 @@ libxmuu1 2:1.1.3-3
|
|||||||
libxxhash0 0.8.1-1 deb
|
libxxhash0 0.8.1-1 deb
|
||||||
libzstd1 1.4.8+dfsg-3build1 deb
|
libzstd1 1.4.8+dfsg-3build1 deb
|
||||||
limiter 2.1.0 npm
|
limiter 2.1.0 npm
|
||||||
locales 2.35-0ubuntu3.3 deb
|
locales 2.35-0ubuntu3.4 deb
|
||||||
log 1.0.0 npm
|
log 1.0.0 npm
|
||||||
login 1:4.8.1-2ubuntu2.1 deb
|
login 1:4.8.1-2ubuntu2.1 deb
|
||||||
logsave 1.46.5-2ubuntu1.1 deb
|
logsave 1.46.5-2ubuntu1.1 deb
|
||||||
|
|||||||
Reference in New Issue
Block a user