Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
ARG INSTALL_NODE=false
ARG INSTALL_AZURE_CLI=false
FROM mcr.microsoft.com/vscode/devcontainers/dotnet:dev-5.0

ENV DOTNET_NOLOGO=true
ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DEVCONTAINER=true

# install redis-cli and ping
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends iputils-ping redis-tools mono-runtime

# install SDK 3.1
RUN curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 3.1 --install-dir /usr/share/dotnet/
12 changes: 12 additions & 0 deletions .devcontainer/TestConfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"MasterServer": "redis",
"ReplicaServer": "redis",
"SecureServer": "redis",
"FailoverMasterServer": "redis",
"FailoverReplicaServer": "redis",
"RediSearchServer": "redisearch",
"IPv4Server": "redis",
"RemoteServer": "redis",
"SentinelServer": "redis",
"ClusterServer": "redis"
}
17 changes: 17 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "StackExchange.Redis",
"dockerComposeFile": [
"docker-compose.yml"
],
"service": "devcontainer",
"workspaceFolder": "/workspace",
"postCreateCommand": "dotnet restore Build.csproj",

"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [
"ms-dotnettools.csharp",
"ms-azuretools.vscode-docker"
],
}
27 changes: 27 additions & 0 deletions .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: '3.7'

services:
devcontainer:
build:
context: .
dockerfile: Dockerfile
volumes:
- ..:/workspace:cached
# Mount the TestConfig.json file as readonly, so that tests talk to services in the internal docker network
# This leaves the original TestsConfig.json outside the devcontainer untouched
- ./TestConfig.json:/workspace/tests/StackExchange.Redis.Tests/TestConfig.json:ro
depends_on:
- redis
- redisearch
links:
- "redis:redis"
- "redisearch:redisearch"
command: /bin/sh -c "while sleep 1000; do :; done"
redis:
build:
context: ../tests/RedisConfigs
dockerfile: Dockerfile
sysctls :
net.core.somaxconn: '511'
redisearch:
image: redislabs/redisearch:latest
2 changes: 1 addition & 1 deletion Build.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.Build.Traversal/2.0.24">
<Project Sdk="Microsoft.Build.Traversal/3.0.2">
<ItemGroup>
<ProjectReference Include="src\**\*.csproj" />
<ProjectReference Include="tests\**\*.csproj" />
Expand Down
3 changes: 2 additions & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
<IsPackable>true</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.3.37" PrivateAssets="all" Condition=" '$(DEVCONTAINER)' != 'true' " />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all"/>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" PrivateAssets="All" Version="1.0.0" />
</ItemGroup>
</Project>