Skip to content

Commit 73ec580

Browse files
authored
Merge pull request #1269 from NickeZ/nickez/feat-test-dev-dockerfile
Allow specifying a docker image version
2 parents 0337053 + 6d20c7d commit 73ec580

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

scripts/dockerenv.sh

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,16 @@ else
3333
fi
3434

3535
CONTAINER_IMAGE=shiftcrypto/firmware_v2
36+
CONTAINER_VERSION=${CONTAINER_VERSION:-latest}
3637
PROJECT_NAME="$(basename "$(realpath "$DIR/..")")"
3738
CONTAINER_NAME="$PROJECT_NAME-$CONTAINER_NAME_SUFFIX"
3839

3940
dockerdev () {
4041
local repo_path="$DIR/.."
4142

42-
if ! $RUNTIME images --filter "reference=${CONTAINER_IMAGE}" | grep -q "${CONTAINER_IMAGE}"; then
43-
echo "No '${CONTAINER_IMAGE}' ${RUNTIME} image found! Maybe you need to run
44-
'${RUNTIME} build --platform linux/amd64 --pull -t ${CONTAINER_IMAGE} .'?" >&2
43+
if ! $RUNTIME images --filter "reference=${CONTAINER_IMAGE}" | grep -q "${CONTAINER_IMAGE} *${CONTAINER_VERSION}"; then
44+
echo "No '${CONTAINER_IMAGE}:${CONTAINER_VERSION}' ${RUNTIME} image found! Maybe you need to run
45+
'${RUNTIME} pull ${CONTAINER_IMAGE}:${CONTAINER_VERSION}'?" >&2
4546
exit 1
4647
fi
4748

@@ -53,8 +54,18 @@ dockerdev () {
5354

5455
# If already running, enter the container.
5556
if $RUNTIME ps --filter "name=^${CONTAINER_NAME}$" | grep -q "$CONTAINER_NAME"; then
56-
$RUNTIME exec $USERFLAG --workdir="$MOUNT_DIR" -it "$CONTAINER_NAME" bash
57-
return
57+
id_running=$(${RUNTIME} inspect ${CONTAINER_NAME} | jq -r '.[0].Image')
58+
id_wanted=$(${RUNTIME} inspect ${CONTAINER_IMAGE}:${CONTAINER_VERSION} | jq -r '.[0].Id')
59+
# If requested version is same as running version, enter container
60+
if ! [ $id_wanted == $id_running ] ; then
61+
echo "Currently running container is not the same version as the requested version"
62+
echo "Requested version ${CONTAINER_IMAGE}:${CONTAINER_VERSION} ($id_wanted)"
63+
echo "Current version $(${RUNTIME} inspect ${CONTAINER_NAME} | jq -r '.[0].Config.Image') ($id_running)"
64+
exit 1
65+
else
66+
$RUNTIME exec $USERFLAG --workdir="$MOUNT_DIR" -it "$CONTAINER_NAME" bash
67+
return
68+
fi
5869
fi
5970

6071
if $RUNTIME ps --all --filter "name=^${CONTAINER_NAME}$" | grep -q "$CONTAINER_NAME"; then
@@ -68,7 +79,7 @@ dockerdev () {
6879
--name="$CONTAINER_NAME" \
6980
-v "$repo_path":"$MOUNT_DIR" \
7081
--cap-add SYS_PTRACE \
71-
${CONTAINER_IMAGE} bash
82+
${CONTAINER_IMAGE}:${CONTAINER_VERSION} bash
7283

7384
if [ "$RUNTIME" = "docker" ] ; then
7485
# Use same user/group id as on the host, so that files are not created as root in the

0 commit comments

Comments
 (0)