Doc updates for Docker/devcontainers/codespace (#30582)
This commit is contained in:
		@@ -1,20 +1,17 @@
 | 
			
		||||
# For details, see https://github.com/devcontainers/images/tree/main/src/ruby
 | 
			
		||||
FROM mcr.microsoft.com/devcontainers/ruby:1-3.3-bookworm
 | 
			
		||||
 | 
			
		||||
# Install Rails
 | 
			
		||||
# RUN gem install rails webdrivers
 | 
			
		||||
 | 
			
		||||
# Update existing node version, keep in sync with .nvmrc
 | 
			
		||||
ARG NODE_VERSION="20"
 | 
			
		||||
RUN . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1
 | 
			
		||||
 | 
			
		||||
# [Optional] Uncomment this section to install additional OS packages.
 | 
			
		||||
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
 | 
			
		||||
    && apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
 | 
			
		||||
# Install additional OS packages
 | 
			
		||||
RUN apt-get update && \
 | 
			
		||||
    export DEBIAN_FRONTEND=noninteractive && \
 | 
			
		||||
    apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
 | 
			
		||||
 | 
			
		||||
# [Optional] Uncomment this line to install additional gems.
 | 
			
		||||
RUN gem install foreman
 | 
			
		||||
 | 
			
		||||
# [Optional] Uncomment this line to install global node packages.
 | 
			
		||||
# Install global node packages
 | 
			
		||||
RUN . /usr/local/share/nvm/nvm.sh && corepack enable 2>&1
 | 
			
		||||
 | 
			
		||||
# Move welcome message to where VS Code expects it
 | 
			
		||||
COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Mastodon on GitHub Codespaces",
 | 
			
		||||
  "dockerComposeFile": "../docker-compose.yml",
 | 
			
		||||
  "dockerComposeFile": "../compose.yaml",
 | 
			
		||||
  "service": "app",
 | 
			
		||||
  "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Mastodon on local machine",
 | 
			
		||||
  "dockerComposeFile": "docker-compose.yml",
 | 
			
		||||
  "dockerComposeFile": "compose.yaml",
 | 
			
		||||
  "service": "app",
 | 
			
		||||
  "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								README.md
									
									
									
									
									
								
							@@ -102,26 +102,35 @@ To set up **MacOS** for native development, complete the following steps:
 | 
			
		||||
### Docker
 | 
			
		||||
 | 
			
		||||
For production hosting and deployment with **Docker**, use the `Dockerfile` and
 | 
			
		||||
`docker-compose.yml` in the project root directory. To create a local
 | 
			
		||||
development environment with **Docker**, complete the following steps:
 | 
			
		||||
`docker-compose.yml` in the project root directory.
 | 
			
		||||
 | 
			
		||||
- Install Docker Desktop
 | 
			
		||||
- Run `docker compose -f .devcontainer/docker-compose.yml up -d`
 | 
			
		||||
- Run `docker compose -f .devcontainer/docker-compose.yml exec app bin/setup`
 | 
			
		||||
- Finally, run `docker compose -f .devcontainer/docker-compose.yml exec app bin/dev`
 | 
			
		||||
For local development, install and launch [Docker], and run:
 | 
			
		||||
 | 
			
		||||
If you are using an IDE with [support for the Development Container specification](https://containers.dev/supporting), it will run the above `docker compose` commands automatically. For **Visual Studio Code** this requires the [Dev Container extension](https://containers.dev/supporting#dev-containers).
 | 
			
		||||
```shell
 | 
			
		||||
docker compose -f .devcontainer/compose.yaml up -d
 | 
			
		||||
docker compose -f .devcontainer/compose.yaml exec app bin/setup
 | 
			
		||||
docker compose -f .devcontainer/compose.yaml exec app bin/dev
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Dev Containers
 | 
			
		||||
 | 
			
		||||
Within IDEs that support the [Development Containers] specification, start the
 | 
			
		||||
"Mastodon on local machine" container from the editor. The necessary `docker
 | 
			
		||||
compose` commands to build and setup the container should run automatically. For
 | 
			
		||||
**Visual Studio Code** this requires installing the [Dev Container extension].
 | 
			
		||||
 | 
			
		||||
### GitHub Codespaces
 | 
			
		||||
 | 
			
		||||
To get you coding in just a few minutes, GitHub Codespaces provides a web-based version of Visual Studio Code and a cloud-hosted development environment fully configured with the software needed for this project..
 | 
			
		||||
[GitHub Codespaces] provides a web-based version of VS Code and a cloud hosted
 | 
			
		||||
development environment configured with the software needed for this project.
 | 
			
		||||
 | 
			
		||||
- Click this button to create a new codespace:<br>
 | 
			
		||||
  [](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=52281283&devcontainer_path=.devcontainer%2Fcodespaces%2Fdevcontainer.json)
 | 
			
		||||
- Wait for the environment to build. This will take a few minutes.
 | 
			
		||||
- When the editor is ready, run `bin/dev` in the terminal.
 | 
			
		||||
- After a few seconds, a popup will appear with a button labeled _Open in Browser_. This will open Mastodon.
 | 
			
		||||
- On the _Ports_ tab, right click on the “stream” row and select _Port visibility_ → _Public_.
 | 
			
		||||
[][codespace]
 | 
			
		||||
 | 
			
		||||
- Click the button to create a new codespace, and confirm the options
 | 
			
		||||
- Wait for the environment to build (takes a few minutes)
 | 
			
		||||
- When the editor is ready, run `bin/dev` in the terminal
 | 
			
		||||
- Wait for an _Open in Browser_ prompt. This will open Mastodon
 | 
			
		||||
- On the _Ports_ tab "stream" setting change _Port visibility_ → _Public_
 | 
			
		||||
 | 
			
		||||
## Contributing
 | 
			
		||||
 | 
			
		||||
@@ -140,3 +149,9 @@ This program is free software: you can redistribute it and/or modify it under th
 | 
			
		||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 | 
			
		||||
[codespace]: https://codespaces.new/mastodon/mastodon?quickstart=1&devcontainer_path=.devcontainer%2Fcodespaces%2Fdevcontainer.json
 | 
			
		||||
[Dev Container extension]: https://containers.dev/supporting#dev-containers
 | 
			
		||||
[Development Containers]: https://containers.dev/supporting
 | 
			
		||||
[Docker]: https://docs.docker.com
 | 
			
		||||
[GitHub Codespaces]: https://docs.github.com/en/codespaces
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user