Skip to content

Commit 91bfa56

Browse files
m0saNick Craver
and
Nick Craver
authored
Adding a devcontainer (#1621)
Co-authored-by: Nick Craver <[email protected]>
1 parent da7a7e1 commit 91bfa56

File tree

6 files changed

+73
-2
lines changed

6 files changed

+73
-2
lines changed

.devcontainer/Dockerfile

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
ARG INSTALL_NODE=false
2+
ARG INSTALL_AZURE_CLI=false
3+
FROM mcr.microsoft.com/vscode/devcontainers/dotnet:dev-5.0
4+
5+
ENV DOTNET_NOLOGO=true
6+
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
7+
ENV DEVCONTAINER=true
8+
9+
# install redis-cli and ping
10+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
11+
&& apt-get -y install --no-install-recommends iputils-ping redis-tools mono-runtime
12+
13+
# install SDK 3.1
14+
RUN curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 3.1 --install-dir /usr/share/dotnet/

.devcontainer/TestConfig.json

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"MasterServer": "redis",
3+
"ReplicaServer": "redis",
4+
"SecureServer": "redis",
5+
"FailoverMasterServer": "redis",
6+
"FailoverReplicaServer": "redis",
7+
"RediSearchServer": "redisearch",
8+
"IPv4Server": "redis",
9+
"RemoteServer": "redis",
10+
"SentinelServer": "redis",
11+
"ClusterServer": "redis"
12+
}

.devcontainer/devcontainer.json

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "StackExchange.Redis",
3+
"dockerComposeFile": [
4+
"docker-compose.yml"
5+
],
6+
"service": "devcontainer",
7+
"workspaceFolder": "/workspace",
8+
"postCreateCommand": "dotnet restore Build.csproj",
9+
10+
"settings": {
11+
"terminal.integrated.shell.linux": "/bin/bash"
12+
},
13+
"extensions": [
14+
"ms-dotnettools.csharp",
15+
"ms-azuretools.vscode-docker"
16+
],
17+
}

.devcontainer/docker-compose.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
version: '3.7'
2+
3+
services:
4+
devcontainer:
5+
build:
6+
context: .
7+
dockerfile: Dockerfile
8+
volumes:
9+
- ..:/workspace:cached
10+
# Mount the TestConfig.json file as readonly, so that tests talk to services in the internal docker network
11+
# This leaves the original TestsConfig.json outside the devcontainer untouched
12+
- ./TestConfig.json:/workspace/tests/StackExchange.Redis.Tests/TestConfig.json:ro
13+
depends_on:
14+
- redis
15+
- redisearch
16+
links:
17+
- "redis:redis"
18+
- "redisearch:redisearch"
19+
command: /bin/sh -c "while sleep 1000; do :; done"
20+
redis:
21+
build:
22+
context: ../tests/RedisConfigs
23+
dockerfile: Dockerfile
24+
sysctls :
25+
net.core.somaxconn: '511'
26+
redisearch:
27+
image: redislabs/redisearch:latest

Build.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.Build.Traversal/2.0.24">
1+
<Project Sdk="Microsoft.Build.Traversal/3.0.2">
22
<ItemGroup>
33
<ProjectReference Include="src\**\*.csproj" />
44
<ProjectReference Include="tests\**\*.csproj" />

src/Directory.Build.props

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
<IsPackable>true</IsPackable>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" />
8+
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" Condition=" '$(DEVCONTAINER)' != 'true' " />
99
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all"/>
10+
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
1011
</ItemGroup>
1112
</Project>

0 commit comments

Comments
 (0)