Skip to content

Commit 3e411b5

Browse files
JoshMockgithub-actions[bot]
authored andcommitted
Update how users/permissions are set up on CI Docker image (#2060)
(cherry picked from commit 5fb65d0)
1 parent ce1c029 commit 3e411b5

File tree

2 files changed

+41
-21
lines changed

2 files changed

+41
-21
lines changed

.ci/Dockerfile

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,19 @@ RUN apt-get clean -y && \
1212
apt-get install -y zip
1313

1414
# Set user permissions and directory
15-
RUN groupadd --system -g ${BUILDER_GID} ${BUILDER_GROUP} \
16-
&& useradd --system --shell /bin/bash -u ${BUILDER_UID} -g ${BUILDER_GROUP} -m elastic 1>/dev/null 2>/dev/null \
15+
RUN (id -g ${BUILDER_GID} || groupadd --system -g ${BUILDER_GID} ${BUILDER_GROUP}) \
16+
&& (id -u ${BUILDER_UID} || useradd --system --shell /bin/bash -u ${BUILDER_UID} -g ${BUILDER_GID} -m elastic) \
1717
&& mkdir -p /usr/src/elasticsearch-js \
18-
&& chown -R ${BUILDER_USER}:${BUILDER_GROUP} /usr/src/
18+
&& chown -R ${BUILDER_UID}:${BUILDER_GID} /usr/src/
19+
1920
WORKDIR /usr/src/elasticsearch-js
20-
USER ${BUILDER_USER}:${BUILDER_GROUP}
2121

22-
# Install app dependencies
23-
COPY --chown=$BUILDER_USER:$BUILDER_GROUP package*.json ./
24-
RUN npm install
22+
# run remainder of commands as non-root user
23+
USER ${BUILDER_UID}:${BUILDER_GID}
24+
25+
# install dependencies
26+
COPY package.json .
27+
RUN npm install --production=false
2528

26-
COPY --chown=$BUILDER_USER:$BUILDER_GROUP . .
29+
# copy project files
30+
COPY . .

.ci/make.sh

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,19 +144,35 @@ docker build \
144144

145145
echo -e "\033[34;1mINFO: running $product container\033[0m"
146146

147-
docker run \
148-
--volume "$repo:/usr/src/elasticsearch-js" \
149-
--volume /usr/src/elasticsearch-js/node_modules \
150-
-u "$(id -u):$(id -g)" \
151-
--env "WORKFLOW=$WORKFLOW" \
152-
--name make-elasticsearch-js \
153-
--rm \
154-
$product \
155-
/bin/bash -c "cd /usr/src && \
156-
git clone https://$CLIENTS_GITHUB_TOKEN@github.com/elastic/elastic-client-generator-js.git && \
157-
mkdir -p /usr/src/elastic-client-generator-js/output && \
158-
cd /usr/src/elasticsearch-js && \
159-
node .ci/make.mjs --task $TASK ${TASK_ARGS[*]}"
147+
if [[ -z "${BUILDKITE+x}" ]] && [[ -z "${CI+x}" ]] && [[ -z "${GITHUB_ACTIONS+x}" ]]; then
148+
echo -e "\033[34;1mINFO: Running in local mode"
149+
docker run \
150+
-u "$(id -u):$(id -g)" \
151+
--volume "$repo:/usr/src/elasticsearch-js" \
152+
--volume /usr/src/elasticsearch-js/node_modules \
153+
--volume "$(realpath $repo/../elastic-client-generator-js):/usr/src/elastic-client-generator-js" \
154+
--env "WORKFLOW=$WORKFLOW" \
155+
--name make-elasticsearch-js \
156+
--rm \
157+
$product \
158+
/bin/bash -c "mkdir -p /usr/src/elastic-client-generator-js/output && \
159+
node .ci/make.mjs --task $TASK ${TASK_ARGS[*]}"
160+
else
161+
echo -e "\033[34;1mINFO: Running in CI mode"
162+
docker run \
163+
--volume "$repo:/usr/src/elasticsearch-js" \
164+
--volume /usr/src/elasticsearch-js/node_modules \
165+
-u "$(id -u):$(id -g)" \
166+
--env "WORKFLOW=$WORKFLOW" \
167+
--name make-elasticsearch-js \
168+
--rm \
169+
$product \
170+
/bin/bash -c "cd /usr/src && \
171+
git clone https://$CLIENTS_GITHUB_TOKEN@github.com/elastic/elastic-client-generator-js.git && \
172+
mkdir -p /usr/src/elastic-client-generator-js/output && \
173+
cd /usr/src/elasticsearch-js && \
174+
node .ci/make.mjs --task $TASK ${TASK_ARGS[*]}"
175+
fi
160176

161177
# ------------------------------------------------------- #
162178
# Post Command tasks & checks

0 commit comments

Comments
 (0)