Some checks failed
Lock Threads / action (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot EE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot EE docker images / merge (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/amd64, ubuntu-latest) (push) Has been cancelled
Publish Chatwoot CE docker images / build (linux/arm64, ubuntu-22.04-arm) (push) Has been cancelled
Publish Chatwoot CE docker images / merge (push) Has been cancelled
Run Chatwoot CE spec / lint-backend (push) Has been cancelled
Run Chatwoot CE spec / lint-frontend (push) Has been cancelled
Run Chatwoot CE spec / frontend-tests (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (0, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (1, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (10, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (11, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (12, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (13, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (14, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (15, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (2, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (3, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (4, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (5, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (6, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (7, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (8, 16) (push) Has been cancelled
Run Chatwoot CE spec / backend-tests (9, 16) (push) Has been cancelled
Run Linux nightly installer / nightly (push) Has been cancelled
- Add Logistics component with progress tracking - Add OrderDetail component for order information - Support data-driven steps and actions - Add blue color scale to widget SCSS - Fix node overflow and progress bar rendering issues - Add English translations for dashboard components Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
99 lines
3.6 KiB
Docker
99 lines
3.6 KiB
Docker
ARG VARIANT="ubuntu-22.04"
|
|
|
|
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
ARG NODE_VERSION
|
|
ARG RUBY_VERSION
|
|
ARG USER_UID
|
|
ARG USER_GID
|
|
ARG PNPM_VERSION="10.2.0"
|
|
ENV PNPM_VERSION ${PNPM_VERSION}
|
|
ENV RUBY_CONFIGURE_OPTS=--disable-install-doc
|
|
|
|
# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user.
|
|
RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \
|
|
groupmod --gid $USER_GID vscode \
|
|
&& usermod --uid $USER_UID --gid $USER_GID vscode \
|
|
&& chmod -R $USER_UID:$USER_GID /home/vscode; \
|
|
fi
|
|
|
|
RUN NODE_MAJOR=$(echo $NODE_VERSION | cut -d. -f1) \
|
|
&& curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - \
|
|
&& apt-get update \
|
|
&& apt-get -y install --no-install-recommends \
|
|
build-essential \
|
|
libssl-dev \
|
|
zlib1g-dev \
|
|
gnupg \
|
|
tar \
|
|
tzdata \
|
|
postgresql-client \
|
|
libpq-dev \
|
|
git \
|
|
imagemagick \
|
|
libyaml-dev \
|
|
curl \
|
|
ca-certificates \
|
|
tmux \
|
|
nodejs \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
# Install rbenv and ruby for root user first
|
|
RUN git clone --depth 1 https://github.com/rbenv/rbenv.git ~/.rbenv \
|
|
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc \
|
|
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc
|
|
ENV PATH "/root/.rbenv/bin/:/root/.rbenv/shims/:$PATH"
|
|
RUN git clone --depth 1 https://github.com/rbenv/ruby-build.git && \
|
|
PREFIX=/usr/local ./ruby-build/install.sh
|
|
|
|
RUN rbenv install $RUBY_VERSION && \
|
|
rbenv global $RUBY_VERSION && \
|
|
rbenv versions
|
|
|
|
# Set up rbenv for vscode user
|
|
RUN su - vscode -c "git clone --depth 1 https://github.com/rbenv/rbenv.git ~/.rbenv" \
|
|
&& su - vscode -c "echo 'export PATH=\"\$HOME/.rbenv/bin:\$PATH\"' >> ~/.bashrc" \
|
|
&& su - vscode -c "echo 'eval \"\$(rbenv init -)\"' >> ~/.bashrc" \
|
|
&& su - vscode -c "PATH=\"/home/vscode/.rbenv/bin:\$PATH\" rbenv install $RUBY_VERSION" \
|
|
&& su - vscode -c "PATH=\"/home/vscode/.rbenv/bin:\$PATH\" rbenv global $RUBY_VERSION"
|
|
|
|
# Install overmind and gh in single layer
|
|
RUN curl -L https://github.com/DarthSim/overmind/releases/download/v2.1.0/overmind-v2.1.0-linux-amd64.gz > overmind.gz \
|
|
&& gunzip overmind.gz \
|
|
&& mv overmind /usr/local/bin \
|
|
&& chmod +x /usr/local/bin/overmind \
|
|
&& curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
|
|
&& apt-get update \
|
|
&& apt-get install -y --no-install-recommends gh \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
|
|
# Do the set up required for chatwoot app
|
|
WORKDIR /workspace
|
|
RUN chown vscode:vscode /workspace
|
|
|
|
# set up node js, pnpm and claude code in single layer
|
|
RUN npm install -g pnpm@${PNPM_VERSION} @anthropic-ai/claude-code \
|
|
&& npm cache clean --force
|
|
|
|
# Switch to vscode user
|
|
USER vscode
|
|
ENV PATH="/home/vscode/.rbenv/bin:/home/vscode/.rbenv/shims:$PATH"
|
|
|
|
# Copy dependency files first for better caching
|
|
COPY --chown=vscode:vscode Gemfile Gemfile.lock package.json pnpm-lock.yaml ./
|
|
|
|
# Install dependencies as vscode user
|
|
RUN eval "$(rbenv init -)" \
|
|
&& gem install bundler -N \
|
|
&& bundle install --jobs=$(nproc) \
|
|
&& pnpm install --frozen-lockfile
|
|
|
|
# Copy source code after dependencies are installed
|
|
COPY --chown=vscode:vscode . /workspace
|